玄铁剑

成功的途径:抄,创造,研究,发明...
posts - 128, comments - 42, trackbacks - 0, articles - 174

ASP.NET 控件和辅助功能

Posted on 2006-12-22 09:18 玄铁剑 阅读(439) 评论(0)  编辑 收藏 引用 所属分类: 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 服务器控件,并提供了有关此类控件的辅助功能支持的信息。对于该表中未列出的控件,无需任何配置要求,其输出就符合辅助功能指南。

 
控件 辅助功能支持

AppearanceEditorPart

该控件不生成用于将标签与控件相关联的 label 元素。

所有谓词生成的链接文本都相同。

呈现链接的替换文字,但不能对其进行自定义。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

BehaviorEditorPart

该控件不生成用于将标签与控件相关联的 label 元素。

所有谓词生成的链接文本都相同。

呈现链接的替换文字,但不能对其进行自定义。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

BulletedList

如果将该控件的 DisplayMode 属性设置为 LinkButton ,则该控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。

当将该控件的 BulletStyle 属性设置为 CustomImage 时,请确保图形没有传达将对不能查看该图形的用户不可用的含义。

为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。

Button

设置 OnClientClick 属性会导致按钮依赖于客户端脚本。

Calendar

该控件不在列中呈现 header,但为标题呈现带有 scopeth 元素。

使用 HTML 表呈现该控件布局,某些指南不建议这样做。按照辅助功能指南中的建议,设置该控件的 Caption CaptionAlign 属性以呈现表标题。

该控件呈现用于导航的 LinkButton 控件,这样的控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。

CatalogZone

该控件不生成用于将标签与控件相关联的 label 元素。

所有谓词生成的链接文本都相同。

呈现链接的替换文字,但不能对其进行自定义。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

ChangePassword

该控件需要使用客户端脚本才能执行功能。

如果将该控件配置为使用图像,请将相应的文本属性设置为适当的替换文字。例如,如果将 ChangePasswordButtonType 属性设置为 Image ,请将 ChangePasswordButtonText 属性设置为替换文字。

CheckBox

AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。

CheckBoxList

AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。

CreateUserWizard

如果将该控件配置为使用图像,请将相应的文本属性设置为适当的替换文字。例如,如果将 CancelButtonType 属性设置为 Image,请将 CancelButtonText 属性设置为替换文字。

该控件中的按钮(如“提交”按钮)及用于在各步骤之间移动的链接需要使用客户端脚本。

DetailsView

如果创建了 ButtonField 列并为该按钮指定了一个图像,则不能为该图像显式指定替换文字。该图像将该对象的 Text 属性用作替换文字。

使用 HTML 表呈现该控件布局,某些指南不建议这样做,因为该控件布局不包括表标题信息。

如果启用了分页并设置了 NextPageImageUrl PreviousPageImageUrl 属性,则不能为用作分页按钮的图像显式设置替换文字。而应改用 PagerTemplate 属性,以便可以定义页导航显示的确切内容。

默认情况下,此控件使用 LinkButton 控件,这些控件需要使用客户端脚本才能执行功能(如切换到编辑模式、分页等)。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。

在将该控件的 AutoGenerateEditButton 属性设置为 true 时自动生成的文本框没有相关联的 label 元素。若要避免这一情况,请创建模板字段并添加您自己的 Label TextBox 控件,然后手动将这两个控件相关联。按照辅助功能指南中的建议,设置该控件的 Caption CaptionAlign 属性以呈现表标题。

DropDownList

该控件不支持推荐的 ListItemGroup,该对象用于将列表细分为各个部分。

AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。

EditorZone

在显示图标时,所有谓词所显示的替换文字都相同。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

该控件不生成用于将标签与控件相关联的 label 元素。

呈现链接的替换文字,但不能对其进行自定义。

FormView

使用 HTML 表呈现该控件布局,某些指南不建议这样做,因为该控件布局不包括表标题信息。

默认情况下,此控件使用 LinkButton 控件,这些控件需要使用客户端脚本才能执行功能(如切换到编辑模式、分页等)。若要避免使用客户端脚本,请针对这些功能使用 PagerTemplate 属性并添加 Button 控件。

按照辅助功能指南中的建议,设置该控件的 Caption CaptionAlign 属性以呈现表标题。

GridView

RowHeaderColumn 属性设置为数据字段的名称并将 UseAccessibleHeader 属性设置为 true,以使该控件呈现符合辅助功能指南的表标题信息。

如果创建了 ButtonField 对象并为该按钮指定了一个图像,则不能为该图像显式指定替换文字。该图像将该对象的 Text 属性用作替换文字。

按照辅助功能指南中的建议,设置该控件的 CaptionCaptionAlign 属性以呈现表标题。

默认情况下,此控件使用 LinkButton 控件,这些控件需要使用客户端脚本才能执行功能(如切换到编辑模式、分页等)。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。

如果启用了分页并设置了 NextPageImageUrlPreviousPageImageUrl 属性,则不能为用作分页按钮的图像显式设置替换文字。而应改用 PagerTemplate 属性,以便可以定义页导航显示的确切内容。

用于实现编辑、选择、分页和其他更新功能的默认控件需要使用客户端脚本。若要避免这一情况,请手动创建模板列并添加 Button 控件。

在将该控件的 AutoGenerateEditButton 属性设置为 true 时所自动生成的文本框没有相关联的 label 元素。若要避免这一情况,请创建模板列并添加您自己的 LabelTextBox 控件,然后手动将这两个控件相关联。

如果启用了排序,则列标题中的链接为 LinkButton 控件,这些链接需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。

HyperLink

如果将 ImageUrl 属性设置为图形文件的 URL,则设置 Text 属性以便为所生成的图形指定替换文字。

为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。

Image

默认情况下,该控件不呈现替换文字。需要设置 AlternateText 属性。如果该图形不具备功能性用途,则将 GenerateEmptyAlternateText 属性设置为 true 以将 alt 集呈现为一个空字符串 (""),这会使屏幕阅读器跳过该图形。

ImageButton

该控件需要使用客户端脚本才能执行功能。

默认情况下,该控件不呈现替换文字。需要设置 AlternateText 属性。

不要将 ImageButton 控件用作图像映射,因为该控件不支持区域带有其自己的替换文字。请改用 ImageMap 控件。

ImageMap

默认情况下,该控件不呈现替换文字。需要设置 AlternateText 属性。

如果将该控件或各作用点的 HotSpotMode 属性设置为 PostBack,则该控件需要使用客户端脚本才能执行功能。

为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。

Label

若要使用该控件为文本框或其他控件呈现一个 label,请将 AssociatedControlID 属性设置为该控件的 ID,以便与该标签相关联。

LayoutEditorPart

始终将 LayoutEditorPart 控件包含在其他 Web 部件控件中以使页具有辅助功能。否则,用户只能使用鼠标拖动 Web 部件控件。

该控件不生成用于将标签与控件相关联的 label 元素。

所有谓词生成的链接文本都相同。

呈现链接的替换文字,但不能对其进行自定义。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

LinkButton

该控件需要使用客户端脚本才能执行功能。

不要将多个 LinkButton 控件的 Text 属性设置为同一字符串,因为依赖于屏幕阅读器的用户将无法识别这些按钮。

ListBox

该控件不支持推荐的 ListItemGroup,该对象用于将列表细分为各个部分。

AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。

Login

当将 LoginButtonType 属性设置为 Image 时,将 LoginButtonText 属性的值用作替换文字。

该控件不呈现访问键或选项卡索引设置。

LoginName

ToolTip 属性设置为 Logged in as username(以用户名登录)等文本,以便屏幕阅读器能够正确地解释该控件的文本。

LoginStatus

该控件使用 LinkButton 控件显示“注销”链接,因此该控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。

Menu

将该控件的 SkipLinkText 属性设置为一个字符串,以使该控件呈现推荐的跳过导航链接。

该控件需要使用客户端脚本才能执行功能。

在不支持控件的全部客户端功能的浏览器中,浏览器将刷新窗口以显示二级导航,这可能会导致屏幕阅读器重新开始读取页。

为链接设置 Target 属性会打开一个新窗口,辅助功能指南不建议这样做。

使用 HTML 表呈现该控件布局,某些指南不建议这样做。

辅助功能指南不建议将该控件配置为具有鼠标指针副作用(如创建快捷菜单)。

PageCatalogPart

该控件不生成用于将标签与控件相关联的 label 元素。

所有谓词生成的链接文本都相同。

呈现链接的替换文字,但不能对其进行自定义。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

PasswordRecovery

如果将页的 ClientTarget 属性设置为 Downlevel,则该控件需要使用客户端脚本才能执行功能。

当将 SubmitButtonType 属性设置为 Image 时,将 SubmitButtonText 属性的值用作替换文字。

该控件不呈现访问键或选项卡索引设置。

PropertyGridEditorPart

该控件不生成用于将标签与控件相关联的 label 元素。

所有谓词生成的链接文本都相同。

呈现链接的替换文字,但不能对其进行自定义。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

RadioButton

AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。

RadioButtonList

AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。

SiteMapPath

将该控件的 SkipLinkText 属性设置为一个字符串,以使该控件呈现推荐的跳过导航链接。

在站点地图 XML 文件中,设置每个站点地图节点的 description 属性,以提供屏幕阅读器可用于标识导航链接的标题。

Table TableRow TableCell TableHeaderCell TableHeaderRow TableFooterRow

按照辅助功能指南中的建议,设置该控件的 Caption CaptionAlign 属性以呈现表标题。

在创建 Table 对象时,应包括 TableHeaderRowTableHeaderCell 控件。

TableHeaderRowTableTableFooterRow 控件中,将 TableSection 属性设置为 TableBodyTableHeaderTableFooter。这会使此类控件分别呈现 theadtbodytfoot 元素。

TableCell 控件中,设置 AssociatedHeaderCellID 属性,以使该控件呈现一个将单元格与其标题相关联的 header

设置该控件的 Scope 属性,以将标题与相应的数据列相关联。

TextBox

AutoPostBack 属性设置为 true 会导致该控件需要使用客户端脚本。

TreeView

将该控件的 SkipLinkText 属性设置为一个字符串,以使该控件呈现推荐的跳过导航链接。

将节点的 PopulateOnDemand 属性设置为 true 会导致该控件的行为方式不符合辅助功能指南。

该控件需要使用客户端脚本才能执行功能。

TreeView 控件或各节点的 Target 属性设置为 _blank 会导致该控件打开一个新窗口,辅助功能指南不建议这样做。

WebPartZone

该控件不生成用于将标签与控件相关联的 label 元素。

所有谓词生成的链接文本都相同。

呈现链接的替换文字,但不能对其进行自定义。

该控件需要使用客户端脚本才能执行功能。

该控件不呈现访问键或选项卡索引设置。

如果将 HelpMode 属性设置为 Modal Modeless ,则该控件会打开一个新窗口,辅助功能指南不建议这样做。

Wizard

该控件呈现用于导航的 LinkButton 控件,这样的控件需要使用客户端脚本才能执行功能。若要避免使用客户端脚本,请为这些功能创建模板并添加 Button 控件。

验证程序控件

默认情况下,验证控件呈现用于执行客户端验证的客户端脚本。但由于内置验证程序控件( CustomValidator 控件除外)自动在服务器代码中执行冗余验证检查,因此可以将 EnableClientScript 属性设置为 false 以避免为验证控件呈现客户端脚本。

Text ErrorMessage 属性设置为有意义的错误信息。不要将错误信息设置为星号 (*)。

只有注册用户登录后才能发表评论。