- From: D. McKirahan <dmckirahan@comcast.net>
- Date: Thu, 12 Jun 2008 08:58:11 -0500
- To: <www-validator@w3.org>
- Message-ID: <005901c8cc94$68045680$6401a8c0@hsd01.il.hsd1.il.comcast.net>
The following fails the W3C Markup Validation Service at http://validator.w3.org/ (Validate by Direct Input): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Test</title> </head> <body> <a href="http://maps.google.com/local?output=html&q=Washington+DC">DC</a> </body> </html> Checking "Clean up Markup with HTML Tidy" suggests that the offending line be changed to: <a href="http://maps.google.com/local?output=html&q=Washington+DC">DC</a> And, yes, this issue is discussed under Common Problems (see below). However, the URL as written works and the HTML Tidy version does not -- when pasted into a browser's address bar. I want my pages to validate so how do I resolve this issue? Thank you. --D. McKirahan --http://www.htmlhelp.com/tools/validator/problems.html#amp Ampersands (&'s) in URLs Another common error occurs when including a URL which contains an ampersand ("&"): <!-- This is invalid! --> <a href="foo.cgi?chapter=1§ion=2©=3&lang=en">...</a> This example generates an error for "unknown entity section" because the "&" is assumed to begin an entity reference. Browsers often recover safely from this kind of error, but real problems do occur in some cases. In this example, many browsers correctly convert ©=3 to ©=3, which may cause the link to fail. Since ⟨ is the HTML entity for the left-pointing angle bracket, some browsers also convert &lang=en to ?=en. And one old browser even finds the entity §, converting §ion=2 to §ion=2. To avoid problems with both validators and browsers, always use & in place of & when writing URLs in HTML: <a href="foo.cgi?chapter=1&section=2&copy=3&lang=en">....</a> Note that replacing & with & is only done when writing the URL in HTML, where "&" is a special character (along with "<" and ">"). When writing the same URL in a plain text email message or in the location bar of your browser, you would use "&" and not "&". With HTML, the browser translates "&" to "&" so the Web server would only see "&" and not "&" in the query string of the request.
Received on Thursday, 12 June 2008 14:35:38 UTC