WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章WAP教程WAP 2.0使用 Web 标准生成 ASP.NET 2.0 Web 站点

使用 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]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码