W3C Markup Validation Service med .NET-sidor

Körde en test med W3C Markup Validation Service för att se att min sida validerar mot XHTML 1.0 Transitional standarden och märkte att så var inte fallet. Jag har gjort lite förändringar på sidan och något hade gått snett. En bild som rendereras av en ImageButton hade helt plötsligt fått ett border-attribut. Detta är inte giltig XHTML-kod och W3C-validatorn gav följande fel:

Error Line 240, column 577: there is no attribute "border". ..."", false, false))" border="0" />

När jag kollade källkoden på sidan såg jag dock inget border-attribut på bilden. Märkligt..

Efter lite undersökning så hittade jag posten "XHTML Validation Fails due to renders a BORDER="0" output" på Microsofts forum. Det verkar röra sig om ett missförstånd mellan W3C validator and ASP.NET ramverket. Lösningen är enkel, lägg till detta i Web.Config:

<browserCaps>
<case match="W3C_Validator*">
TagWriter = System.Web.UI.HtmlTextWriter
W3CDomVersion = 1.0
</case>
</browserCaps>

Comments

[…] W3C_Validator i BrowserCaps som vi förklarat tidigare […] Sen även lägga till följande rad, så att form-taggen inte ska få något name-attribut […]