Na obsah stránky

Přístupnější formuláře v ASP.NET 2.0

Aleš Roubíček | | # permalink

„Druhá“ verze ASP.NET přináší krom jiného i podporu XHTML výstupu a rovněž podporu přístupnosti. Validátor na příslušné standardy je součástí VisualStudia 2005 a tak by pro vývojáře mělo být snazší najít prohřešky proti těmto doporučením.

Když jsem ve verzi 1.x chtěl udělat přístupný formulář, který má popisky k formulářovým prvkům uzavřené v tagu label, nešlo k tomu využít serverového prvku asp:Label, který se logicky nabízel. Tento prvek se generuje jako span, tudíž nám je v tomto případě k ničemu. Musel jsem to obcházet a našel jsem si dva způsoby, vhodnějším se mi pak ukázal ten druhý.

Tím prvním je uzavření formulářového prvku přímo do tagu label. specifikace toto použití připouští, ale ne vždy je možné ho použít.

<label>Popiska <asp:TextBox ID="TextBox1" runat="server" /></label>

V druhém případě se využije atribut for elementu label, který je referencí na id formulářového prvku. Protože se však ID prvků v uživatelských kontrolech, a nejen v nich, mění, nemůžeme napsat obsah atributu for natvrdo, ale musíme si pomoci programově. Každý WebControl má vlastnost ClientID, která vrací hodnotu atributu id po vyrenderování.

<label for="<%= TextBox1.ClientID %>">Popiska</label>
<asp:TextBox ID="TextBox1" runat="server" />

Tak to byl můj starý způsob vytváření formulářových popisků. ASP.NET 2.0 přichází s novinkou. Nyní lze využít asp:Label k vytváření formulářových popisků a to pomocí vlastnosti AssociatedControlID! Pokud je tato vlastnost vyplněna patřičným ID, dojde k vyrenderování elementu label namísto span.

<asp:Label AssociatedControlID="TextBox1" runat="server">Popiska</asp:Label>
<asp:TextBox ID="TextBox1" runat="server" />

Sami si vyberte způsob, který vám nejlépe vyhovuje…

Našli jste v článku chybu? Máte námět na reportáž? Založte mi ticket.