ASP.NET 控件和辅助功能
更新:2007 年 11 月
使用 ASP.NET 可以创建符合辅助功能规则的网页。有关详细信息,请参见 ASP.NET 中的辅助功能支持。
若要在 ASP.NET 中创建具有辅助功能的 Web 应用程序,必须了解 ASP.NET 服务器控件支持辅助功能的方式。在许多情况下,必须对控件进行配置以创建符合辅助功能指南的标记。在一些情况下,ASP.NET 服务器控件不能用于必须完全符合 Web Content Accessibility Guidelines 1.0 (WCAG)(Web 内容可访问性指南 1.0 (WCAG))优先级为 1 的指南的应用程序中。在这些情况下,必须避免使用这些控件。
ASP.NET 控件辅助功能指南
下表列出了 ASP.NET 服务器控件,并提供了有关此类控件的辅助功能支持的信息。对于该表中未列出的控件,无需任何配置要求,其输出就符合辅助功能指南。
控件 |
辅助功能支持 |
---|---|
该控件不生成用于将标签与控件相关联的 label 元素。 所有谓词生成的链接文本都相同。 呈现链接的替换文字,但不能对其进行自定义。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 |
|
该控件不生成用于将标签与控件相关联的 label 元素。 所有谓词生成的链接文本都相同。 呈现链接的替换文字,但不能对其进行自定义。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 |
|
如果将该控件的 DisplayMode 属性设置为 LinkButton,则该控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。 当将该控件的 BulletStyle 属性设置为 CustomImage 时,请确保图形没有传达将对不能查看该图形的用户不可用的含义。 为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。 |
|
设置 OnClientClick 属性会导致按钮依赖于客户端脚本。 |
|
该控件不在列中呈现 header,但为标题呈现带有 scope 的 th 元素。 使用 HTML 表呈现该控件布局,某些指南不建议这样做。按照辅助功能指南中的建议,设置该控件的 Caption 和 CaptionAlign 属性以呈现表标题。 该控件呈现用于导航的 LinkButton 控件,这样的控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。 |
|
该控件不生成用于将标签与控件相关联的 label 元素。 所有谓词生成的链接文本都相同。 呈现链接的替换文字,但不能对其进行自定义。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 |
|
该控件需要使用客户端脚本才能执行功能。 如果将该控件配置为使用图像,请将相应的文本属性设置为适当的替换文字。例如,如果将 ChangePasswordButtonType 属性设置为 Image,请将 ChangePasswordButtonText 属性设置为替换文字。 |
|
将 AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。 |
|
将 AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。 |
|
如果将该控件配置为使用图像,请将相应的文本属性设置为适当的替换文字。例如,如果将 CancelButtonType 属性设置为 Image,请将 CancelButtonText 属性设置为替换文字。 该控件中的按钮(如“提交”按钮)及用于在各步骤之间移动的链接需要使用客户端脚本。 |
|
如果未设置 QueryStringField 属性并且使用的是 NumericPagerField 或 NextPreviousPagerField 对象,则 DataPager 控件需要客户端脚本。如果将页导航字段对象配置为使用图像,则无法为这些图像显式指定替换文字。这些图像使用文本属性(如 NextPageText)作为替换文字。作为一种替代方法,可使用 TemplatePagerField 对象,这样就可以准确地定义页导航显示的内容。 |
|
如果创建了 ButtonField 列并为该按钮指定了一个图像,则不能为该图像显式指定替换文字。该图像将该对象的 Text 属性用作替换文字。 使用 HTML 表呈现该控件布局,某些指南不建议这样做,因为该控件布局不包括表标题信息。 如果启用了分页并设置了 NextPageImageUrl 和 PreviousPageImageUrl 属性,则不能为用作分页按钮的图像显式设置替换文字。而应改用 PagerTemplate 属性,以便可以定义页导航显示的确切内容。 默认情况下,此控件使用 LinkButton 控件,这些控件需要使用客户端脚本才能执行功能(如切换到编辑模式、分页等)。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。 在将该控件的 AutoGenerateEditButton 属性设置为 true 时自动生成的文本框没有相关联的 label 元素。若要避免这一情况,请创建模板字段并添加您自己的 Label 和 TextBox 控件,然后手动将这两个控件相关联。按照辅助功能指南中的建议,设置该控件的 Caption 和 CaptionAlign 属性以呈现表标题。 |
|
该控件不支持推荐的 ListItemGroup,该对象用于将列表细分为各个部分。 将 AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。 |
|
在显示图标时,所有谓词所显示的替换文字都相同。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 该控件不生成用于将标签与控件相关联的 label 元素。 呈现链接的替换文字,但不能对其进行自定义。 |
|
使用 HTML 表呈现该控件布局,某些指南不建议这样做,因为该控件布局不包括表标题信息。 默认情况下,此控件使用 LinkButton 控件,这些控件需要使用客户端脚本才能执行功能(如切换到编辑模式、分页等)。若要避免使用客户端脚本,请针对这些功能使用 PagerTemplate 属性并添加 Button 控件。 按照辅助功能指南中的建议,设置该控件的 Caption 和 CaptionAlign 属性以呈现表标题。 |
|
将 RowHeaderColumn 属性设置为数据字段的名称并将 UseAccessibleHeader 属性设置为 true,以使该控件呈现符合辅助功能指南的表标题信息。 如果创建了 ButtonField 对象并为该按钮指定了一个图像,则不能为该图像显式指定替换文字。该图像将该对象的 Text 属性用作替换文字。 按照辅助功能指南中的建议,设置该控件的 Caption 和 CaptionAlign 属性以呈现表标题。 默认情况下,此控件使用 LinkButton 控件,这些控件需要使用客户端脚本才能执行功能(如切换到编辑模式、分页等)。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。 如果启用了分页并设置了 NextPageImageUrl 和 PreviousPageImageUrl 属性,则不能为用作分页按钮的图像显式设置替换文字。而应改用 PagerTemplate 属性,以便可以定义页导航显示的确切内容。 用于实现编辑、选择、分页和其他更新功能的默认控件需要使用客户端脚本。若要避免这一情况,请手动创建模板列并添加 Button 控件。 在将该控件的 AutoGenerateEditButton 属性设置为 true 时所自动生成的文本框没有相关联的 label 元素。若要避免这一情况,请创建模板列并添加您自己的 Label 和 TextBox 控件,然后手动将这两个控件相关联。 如果启用了排序,则列标题中的链接为 LinkButton 控件,这些链接需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。 |
|
如果将 ImageUrl 属性设置为图形文件的 URL,则设置 Text 属性以便为所生成的图形指定替换文字。 为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。 |
|
默认情况下,该控件不呈现替换文字。需要设置 AlternateText 属性。如果该图形不具备功能性用途,则将 GenerateEmptyAlternateText 属性设置为 true 以将 alt 集呈现为一个空字符串 (""),这会使屏幕阅读器跳过该图形。 |
|
该控件需要使用客户端脚本才能执行功能。 默认情况下,该控件不呈现替换文字。需要设置 AlternateText 属性。 不要将 ImageButton 控件用作图像映射,因为该控件不支持区域带有其自己的替换文字。请改用 ImageMap 控件。 |
|
默认情况下,该控件不呈现替换文字。需要设置 AlternateText 属性。 如果将该控件或各作用点的 HotSpotMode 属性设置为 PostBack,则该控件需要使用客户端脚本才能执行功能。 为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。 |
|
若要使用该控件为文本框或其他控件呈现一个 label,请将 AssociatedControlID 属性设置为该控件的 ID,以便与该标签相关联。 |
|
始终将 LayoutEditorPart 控件包含在其他 Web 部件控件中以使页具有辅助功能。否则,用户只能使用鼠标拖动 Web 部件控件。 该控件不生成用于将标签与控件相关联的 label 元素。 所有谓词生成的链接文本都相同。 呈现链接的替换文字,但不能对其进行自定义。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 |
|
该控件需要使用客户端脚本才能执行功能。 不要将多个 LinkButton 控件的 Text 属性设置为同一字符串,因为依赖于屏幕阅读器的用户将无法识别这些按钮。 |
|
该控件不支持推荐的 ListItemGroup,该对象用于将列表细分为各个部分。 将 AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。 |
|
当将 LoginButtonType 属性设置为 Image 时,将 LoginButtonText 属性的值用作替换文字。 该控件不呈现访问键或选项卡索引设置。 |
|
将 ToolTip 属性设置为 Logged in as username(以用户名登录)等文本,以便屏幕阅读器能够正确地解释该控件的文本。 |
|
该控件使用 LinkButton 控件显示“注销”链接,因此该控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。 |
|
将该控件的 SkipLinkText 属性设置为一个字符串,以使该控件呈现推荐的跳过导航链接。 该控件需要使用客户端脚本才能执行功能。 在不支持控件的全部客户端功能的浏览器中,浏览器将刷新窗口以显示二级导航,这可能会导致屏幕阅读器重新开始读取页。 为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。 使用 HTML 表呈现该控件布局,某些指南不建议这样做。 辅助功能指南不建议将该控件配置为具有鼠标指针副作用(如创建快捷菜单)。 |
|
该控件不生成用于将标签与控件相关联的 label 元素。 所有谓词生成的链接文本都相同。 呈现链接的替换文字,但不能对其进行自定义。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 |
|
如果将页的 ClientTarget 属性设置为 Downlevel,则该控件需要使用客户端脚本才能执行功能。 当将 SubmitButtonType 属性设置为 Image 时,将 SubmitButtonText 属性的值用作替换文字。 该控件不呈现访问键或选项卡索引设置。 |
|
该控件不生成用于将标签与控件相关联的 label 元素。 所有谓词生成的链接文本都相同。 呈现链接的替换文字,但不能对其进行自定义。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 |
|
将 AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。 |
|
将 AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。 |
|
将该控件的 SkipLinkText 属性设置为一个字符串,以使该控件呈现推荐的跳过导航链接。 在站点地图 XML 文件中,设置每个站点地图节点的 description 属性,以提供屏幕阅读器可用于标识导航链接的标题。 |
|
Table、TableRow、TableCell、TableHeaderCell、TableHeaderRow 和 TableFooterRow |
按照辅助功能指南中的建议,设置该控件的 Caption 和 CaptionAlign 属性以呈现表标题。 在创建 Table 对象时,应包括 TableHeaderRow 和 TableHeaderCell 控件。 在 TableHeaderRow、Table 和 TableFooterRow 控件中,将 TableSection 属性设置为 TableBody、TableHeader 或 TableFooter。这会使此类控件分别呈现 thead、tbody 和 tfoot 元素。 在 TableCell 控件中,设置 AssociatedHeaderCellID 属性,以使该控件呈现一个将单元格与其标题相关联的 header。 设置该控件的 Scope 属性,以将标题与相应的数据列相关联。 |
将 AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。 |
|
将该控件的 SkipLinkText 属性设置为一个字符串,以使该控件呈现推荐的跳过导航链接。 将节点的 PopulateOnDemand 属性设置为 true 会导致该控件的行为方式不符合辅助功能指南。 该控件需要使用客户端脚本才能执行功能。 将 TreeView 控件或各节点的 Target 属性设置为 _blank 会导致该控件打开一个新窗口,辅助功能指南不建议这样做。 |
|
该控件不生成用于将标签与控件相关联的 label 元素。 所有谓词生成的链接文本都相同。 呈现链接的替换文字,但不能对其进行自定义。 该控件需要使用客户端脚本才能执行功能。 该控件不呈现访问键或选项卡索引设置。 如果将 HelpMode 属性设置为 Modal 或 Modeless,则该控件会打开一个新窗口,辅助功能指南不建议这样做。 |
|
该控件呈现用于导航的 LinkButton 控件,这样的控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。 |
|
验证程序控件 |
默认情况下,验证控件呈现用于执行客户端验证的客户端脚本。但由于内置验证程序控件(CustomValidator 控件除外)自动在服务器代码中执行冗余验证检查,因此可以将 EnableClientScript 属性设置为 false 以避免为验证控件呈现客户端脚本。 将 Text 和 ErrorMessage 属性设置为有意义的错误信息。不要将错误信息设置为星号 (*)。 |