使用 Web 标准生成 ASP.NET 2.0 Web 站点 |
| 作者:Stephen Walther 来源:Stephen Walther 发布时间:2006-4-27 1:19:21 |
|
在这种情况下,我们确实希望为 alt 属性呈现空值。 为了解决该问题,ASP.NET 2.0 框架中引入了以下新属性,使您能够用 Image 控件显示空替换文本:GenerateEmptyAlternateText 属性。 <asp:Image ImageUrl="PageDivider.gif" GenerateEmptyAlternateText="true" Runat="Server" /> 如果使用 GenerateEmptyAlternateText 属性,则会正确地呈现 alt="" 属性。 当图像表示某个真正复杂的事物(例如,组织结构图)时,不能使用 alt 属性来提供替换文本说明。当需要提供较长的图像含义说明时,需要使用 longdesc 属性。 longdesc 属性接受相对或绝对 URL 作为它的值。该 URL 应当链接到包含图像内容的文本说明的页。以下示例说明如何将该属性与 <img> 标记配合使用。 <img src="OrgChart.gif" alt="Company Organization Chart" longdesc="/OrgChartDescription.aspx" /> ASP.NET Image 控件包含一个名为 DescriptionUrl 的属性,它对应于 HTML longdesc 属性。以下示例说明如何使用该属性。 <asp:Image ImageUrl="OrgChart.gif" AlternateText="Company Organization Chart" DescriptionUrl="/OrgChartDescription.aspx" Runat="server" /> 返回页首 创建可访问的表单 Web 页表单可能给视力低下的人士以及缺乏动作协调性的人士带来问题。如果通过屏幕阅读器访问 Web 页表单,那么可能很难将表单域与其相应的标签相关联。例如,假设 Web 页包含以下表单。 <table> <tr> <td>First Name:</td> <td><input name="txtFirstName" /></td> </tr> <tr> <td>Last Name:</td> <td><input name="txtLastName" /></td> </tr> </table> 该表单显示一个人的名和姓的输入域。在这种情况下,因为该表单显示在表中,所以屏幕阅读器用户可能很难将正确的标签与正确的表单域相关联。HTML 4.0 中引入以下新标记,以使您能够将表单域标签与表单域相关联:<label> 标记。下面说明如何使用 <label> 标记编写前面的表单。 <table> <tr> <td><label for="txtFirstName">First Name:</label></td> <td><input name="txtFirstName" id="txtFirstName" /></td> </tr> <tr> <td><label for="txtLastName">Last Name:</label></td> <td><input name="txtLastName" id="txtLastName" /></td> </tr> </table> <label> 标记将表单域标签与其相应的表单域显式关联起来。请注意,<input> 域包含 id 属性,这是因为 for 属性的值必须是输入域的 id 属性而不是 name 属性。 通常,ASP.NET Label 控件生成 <span> 标记。但是,如果您在声明 ASP.NET Label 控件时提供了 AssociatedControlId 属性,则该控件会呈现 <label> 标记。下面说明如何用 ASP.NET Label 和 TextBox 控件生成可访问的表单。 <table> <tr> <td><asp:Label AssociatedControlID="txtFirstName" runat="server">First Name:</asp:Label></td> <td><asp:TextBox ID="txtFirstName" runat="server" /></td> </tr> <tr> <td><asp:Label AssociatedControlID="txtLastName" runat="server">Last Name:</asp:Label></td> <td><asp:TextBox ID="txtLastName" runat="server" /></td> </tr> </table> 在为 ASP.NET 控件提供标签时,应当使用 ASP.NET Label 控件,而不是 HTML <label> 标记。在将一个 ID 分配给 ASP.NET 控件(如 TextBox 控件)时,呈现到浏览器中的 ID 可能与您分配给该控件的 ID 不同。因此,如果使用 <label> 标记,则 <label> 标记中的 ID 可能与所呈现的 TextBox 控件的 ID 不匹配。另一方面,如果使用 ASP.NET Label 控件,则不必担心该问题。 ASP.NET CheckBox、RadioButton、CheckBoxList 和 RadioButtonList 控件自动呈现 <label> 标记。在使用这些控件时,请小心使用 Text 属性来标记控件的文本。您不应该执行以下操作。 <asp:CheckBox Runat="Server" /> Include Gift Wrap 相反,请执行以下操作。 <asp:CheckBox Text="Include Gift Wrap" Runat="Server" /> 对于通过屏幕阅读器与 Web 页进行交互的用户,大型表单也可能产生问题。在聆听大型表单的内容时,很容易忘记正在聆听该表单的哪个部分。在显示大型表单时,将该表单划分为多个小块是一个好主意。您可以通过使用 <fieldset> 标记将单个表单划分为多个部分。以下示例说明如何使用该标记。 <form id="form1" runat="server"> <div> <fieldset> <legend>Contact Information</legend> ... form fields </fieldset> <fieldset> <legend>Payment Information</legend> ... form fields </fieldset> </div> </form> 该表单通过 <fieldset> 标记划分为两个子表单。<legend> 标记用来标记这些子表单的用途。在 Internet Explorer、Firefox 和 Opera 中显示时,这些子表单被边框直观地划分为多个单独的区域(参见图 5)。但是,重要的是要记住,<fieldset> 标记的主要用途是实现可访问性。如果不喜欢 <fieldset> 标记的可视化外观,那么可通过样式表规则修改该标记的外观,或通过使用 CSS display 或 visibility 属性将该标记完全隐藏。 图 5. 标记 视力低下的人士并不是 Web 页用户中唯一可能觉得 Web 表单难以访问的人。那些缺乏动作协调性的用户也会在与表单交互时遇到困难。 在生成 Web 表单时,为每个表单域包含 accesskey 和 tabindex 属性总是一个好主意。accesskey 属性使无法使用鼠标的用户能够直接导航到任何表单域。tabindex 属性使您能够控制表单域的 Tab 键顺序。对于那些必须通过键盘(或像键盘一样操作的辅助性设备)与页面进行交互的用户而言,这两个属性可使其生活变得更方便一些。 下面是一个同时使用 accesskey 和 tabindex 属性的示例表单。 <asp:Label AssociatedControlID="txtFirstName" AccessKey="f" runat="server"><u>F</u>irst Name</asp:Label> <asp:TextBox id="txtFirstName" TabIndex="1" Runat="server" /> <br /> <asp:Label AssociatedControlID="txtLastName" AccessKey="l" runat="server"><u>L</u>ast Name</asp:Label> <asp:TextBox id="txtLastName" TabIndex="2" Runat="server" /> tabindex 属性用来控制表单域的 Tab 键顺序。因为第一个表单域具有的 tabindex 值为 1,所以当用户第一次按 Tab 键时,该页中任何出现在该表单之前的其他元素都被跳过。 在使用 Internet Explorer 或 Firefox 时,按 ALT+F 可自动将焦点移至 First Name 文本框。如果按 ALT+L,则焦点会自动移至 Last Name 文本框。在使用 Opera 时,必须首先按 SHIFT+ESC,然后才能选择访问键。 请注意,First Name 和 Last Name 标签的第一个字母都带有下划线。通过为字母添加下划线,可以为 Web 站点的用户提供访问键的直观表示。这是在 Microsoft Windows 应用程序中标记访问键的标准方式。但是,还有其他在表单中指示访问键的推荐方法(请参阅 ht 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] 下一页 |
| [] [返回上一页] [打 印] |
|
文章评论 |
