From acd75b6d23bc778b82fcc0b42602cb5ed747fe77 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Sat, 22 Jul 2023 13:28:34 +0000 Subject: [PATCH 01/72] update aria/index.md --- files/zh-cn/web/accessibility/aria/index.md | 95 +++++++++++++-------- 1 file changed, 58 insertions(+), 37 deletions(-) diff --git a/files/zh-cn/web/accessibility/aria/index.md b/files/zh-cn/web/accessibility/aria/index.md index 8d2871080b9404..6da7700ab9ea60 100644 --- a/files/zh-cn/web/accessibility/aria/index.md +++ b/files/zh-cn/web/accessibility/aria/index.md @@ -3,12 +3,38 @@ title: ARIA slug: Web/Accessibility/ARIA --- -**ARIA** (Accessible Rich Internet Applications) 是一组属性,用于定义使残障人士更容易访问 Web 内容和 Web 应用程序(尤其是使用 JavaScript 开发的应用程序)的方法。 - -它补充了 HTML,以便在没有其他机制时可以将应用程序中常用的交互和小部件传递给辅助技术。例如,ARIA 支持 HTML4 中的可访问导航地标、JavaScript 小部件、表单提示和错误消息、实时内容更新等。 + + +**ARIA** (Accessible Rich Internet Applications) 是一组[角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles)和[特性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes),用于定义使残障人士更容易访问 Web 内容和 Web 应用程序(尤其是使用 JavaScript 开发的应用程序)的方法。 + +它补充了 HTML,以便在没有其他机制时可以将应用程序中常用的交互和小部件传递给辅助技术。例如,ARIA 支持 HTML4 中的无障碍 JavaScript 小部件、表单提示和错误消息、实时内容更新等。 > **警告:** 许多这些小部件后来被合并到 HTML5 中,如果存在这样的元素,**开发人员应该更喜欢使用正确语义的 HTML 元素而不是使用 ARIA**。例如,原生元素具有内置的[键盘无障碍](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)、角色和状态。但是,如果您选择使用 ARIA,则您有责任在脚本中模仿(等效)浏览器行为。 +使用 [ARIA 的第一规则](https://www.w3.org/TR/using-aria/#rule1)是“如果你能够使用原生的 HTML 元素或属性,并且有你需要但已经建立在里面的语义和行为,而不是重新调整元素的用途并添加 ARIA 角色、状态或者属性来使它更加无障碍,那么你就应该如此。” + +> **注意:** 有个说法叫做“ARIA 宁缺毋滥”。在 [WebAim's survey of over one million home pages](https://webaim.org/projects/million/#aria) 中,他们发生,有 ARIA 存在的主页比那些没有 ARIA 的,多检测出了平均 41% 的错误。尽管 ARIA 是为了使网页更加无障碍而设计的,但是如果使用不当,可能适得其反。 + 这是进度条小部件的标记: ```html @@ -20,30 +46,38 @@ slug: Web/Accessibility/ARIA aria-valuemax="100"> ``` -这个进度条是使用 {{HTMLElement("div")}} 构建的,它没有任何意义。不幸的是,HTML 4 中没有更多语义标签可供开发人员使用,因此我们需要包含 ARIA 角色和属性。这些是通过向元素添加属性来指定的。在这个例子中, `role="progressbar"` 属性通知浏览器这个元素实际上是一个 JavaScript 驱动的进度条小部件。 `aria-valuemin` 和 `aria-valuemax` 属性指定进度条的最小值和最大值,`aria-valuenow` 描述进度条的当前状态和因此必须使用 JavaScript 保持更新。 +这个进度条是使用 {{HTMLElement("div")}} 构建的,没有任何意义。我们加入 ARIA 角色和属性以添加意义。在这个例子中,[`role="progressbar"`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/progressbar_role) 属性告知浏览器,这个元素实际上是一个由 JavaScript 驱动的进度条小部件。[`aria-valuemin`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuemin) 和 [`aria-valuemax`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuemax) 属性指定进度条的最小值和最大值,,[`aria-valuenow`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuenow) 描述进度条的当前状态和因此必须使用 JavaScript 保持更新。 除了将它们直接放置在元素中之外,还可以将 ARIA 属性添加到元素中,并使用 JavaScript 代码动态更新,如下所示: ```js -// Find the progress bar
in the DOM. +// 在 DOM 中,寻找进度条
。 var progressBar = document.getElementById("percent-loaded"); -// Set its ARIA roles and states, -// so that assistive technologies know what kind of widget it is. +// 设置其 ARIA 属性和状态, +// 这样辅助技术知道它是哪一种部件。 progressBar.setAttribute("role", "progressbar"); progressBar.setAttribute("aria-valuemin", 0); progressBar.setAttribute("aria-valuemax", 100); -// Create a function that can be called at any time to update -// the value of the progress bar. +// 创建可以在任何时候调用的函数, +// 以更新进度条的值。 function updateProgress(percentComplete) { progressBar.setAttribute("aria-valuenow", percentComplete); } ``` -> **备注:** 请注意,ARIA 是在 HTML4 之后发明的,因此无法在 HTML4 或其 XHTML 变体中进行验证。然而,它提供的无障碍收益远远超过任何技术无效性。 -> -> 在 HTML5 中,所有 ARIA 属性都经过验证。新的地标元素({{HTMLElement("main")}}、{{HTMLElement("header")}}、{{HTMLElement("nav")}} 等)具有内置的 ARIA 角色,因此有无需复制它们。 +所有对非辅助技术的可用的内容都应该对辅助技术可用。类似地,不应包含针对辅助技术用户使用但对于不使用辅助技术的用户无法访问的任何功能。这个进度条需要有相应的样式,从而看起来像进度条。 + +如果使用原生的 {{HTMLElement('progress')}} 元素,则会简单得多: + +```HTML +75 % +``` + +> **Note:** {{HTMLElement('progress')}} 元素不允许 `min` 属性,最小值永远为 0。 + +> HTML 陆标元素({{HTMLElement("main")}}、{{HTMLElement("header")}}、{{HTMLElement("nav")}} 等)具有内置的 ARIA 角色,因此有无需复制它们。 ## 支持 @@ -62,24 +96,12 @@ function updateProgress(percentComplete) { - [Using ARIA](https://w3c.github.io/using-aria/) - : 开发人员实用指南。它建议在 HTML 元素上使用哪些 ARIA 属性。建议是基于实施的实际情况。 -## 简单的 ARIA 增强 - -- [Enhancing page navigation with ARIA landmarks](https://www.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/) - - : 使用 ARIA 地标改进屏幕阅读器用户的网页导航的一个很好的介绍。参考 [ARIA landmark implementation notes](https://www.paciellogroup.com/blog/2011/07/html5-accessibility-chops-aria-landmark-support/) 和真实站点上的示例(截至 2011 年 7 月更新)。 - -## 脚本小部件的 ARIA - -- [编写可通过键盘导航的 JavaScript 小部件](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets) - - : {{HTMLElement("input")}}、{{HTMLElement("button")}} 等内置元素具有内置键盘辅助功能。如果您使用 {{HTMLElement("div")}} 和 ARIA 来“伪造”这些,则必须确保您的小部件可通过键盘访问。 -- [实时区域](/zh-CN/docs/Web/Accessibility/ARIA/ARIA_Live_Regions) - - : 实时区域向屏幕阅读器提供有关如何处理页面内容更改的建议。 -- [Using ARIA Live Regions to announce content changes](https://www.freedomscientific.com/Training/Surfs-up/AriaLiveRegions.htm) - - : JAWS 屏幕阅读器软件制造商对实时区域的快速总结。带有 Firefox 的 NVDA 和带有 Safari 的 VoiceOver 也支持实时区域。 - -## 参考文献 +## 参考 -- [ARIA Roles](/zh-CN/docs/Web/Accessibility/ARIA/Roles) - - : 参考页面涵盖了 MDN 上讨论的所有 WAI-ARIA 角色。 +- [ARIA 角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles) + - : 包含了 MDN 中讨论的所有 WAI-ARIA 角色的参考页面。 +- [ARIA 状态和属性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes) + - : 包含了 MDN 中讨论的所有 WAI-ARIA 状态和属性的参考页面。 ## 标准化工作 @@ -88,16 +110,15 @@ function updateProgress(percentComplete) { - [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.1/) - : 官方最佳实践记录了如何最好地对常见小部件和交互进行 ARIA 化。一个很好的资源。 +## 脚本小部件的 ARIA + +- [编写可通过键盘导航的 JavaScript 小部件](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets) + - : {{HTMLElement("input")}}、{{HTMLElement("button")}} 等内置元素具有内置键盘辅助功能。如果您使用 {{HTMLElement("div")}} 和 ARIA 来“伪造”这些,则必须确保您的小部件可通过键盘访问。 +- [实时区域](/zh-CN/docs/Web/Accessibility/ARIA/ARIA_Live_Regions) + - : 实时区域向屏幕阅读器提供有关如何处理页面内容更改的建议。 + ## 视频 以下演讲是了解 ARIA 的好方法: [ARIA, Accessibility APIs and coding like you give a damn! – Léonie Watson](https://www.youtube.com/watch?v=qdB8SRhqvFc) - -## 提交错误 - -[在浏览器、屏幕阅读器和 JavaScript 库上提交 ARIA 错误。](/zh-CN/docs/Web/Accessibility/ARIA/How_to_file_ARIA-related_bugs) - -## 相关话题 - -[Accessibility](/zh-CN/docs/Web/Accessibility), [AJAX](/zh-CN/docs/Web/Guide/AJAX), [JavaScript](/zh-CN/docs/Web/JavaScript) From b47e18aced02df9a5bc11daf7eb212c71241e583 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Sat, 22 Jul 2023 13:58:26 +0000 Subject: [PATCH 02/72] update aria/roles/index.md --- .../web/accessibility/aria/roles/index.md | 145 +++++++++++++++++- 1 file changed, 143 insertions(+), 2 deletions(-) diff --git a/files/zh-cn/web/accessibility/aria/roles/index.md b/files/zh-cn/web/accessibility/aria/roles/index.md index d84b8d5dc191ad..ef4dfe7da605ae 100644 --- a/files/zh-cn/web/accessibility/aria/roles/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/index.md @@ -1,12 +1,153 @@ --- -title: WAI-ARIA Roles +title: WAI-ARIA 角色 slug: Web/Accessibility/ARIA/Roles --- -此页面列出了涵盖 MDN 上讨论的所有 WAI-ARIA 角色的参考页面。有关角色的完整列表,请参阅 [ARIA 技术](/zh-CN/docs/Web/Accessibility/ARIA/ARIA_Techniques) +ARIA 角色为内容提供了语义,允许屏幕阅读器和其他工具与对象类型的用户预期一致的方式进行呈现并支持交互。ARIA 角色可以用于描述不在 HTML 中原生存在的元素,或者存在但没有完整的浏览器支持的元素。 + +默认情况下,很多语义的 HTML 元素都有角色,例如,`` 有 `radio` 角色。HTML 的非语义的元素没有角色,例如没有添加语义的 `
` 和 `` 会返回 `null`。`role` 属性可以添加语义。 + +将 ARIA 角色添加到 HTML 元素的方法是使用 `role="角色类型"`,其中 _角色类型_ 是角色在 ARIA 规范中的名称。有些角色需要包含相关的状态或属性;其他这些仅在与其他角色关联时有用。 + +例如,`
    ` 会被屏幕阅读器读作“标签面板(tab panel)”。但是,如果标签页面没有嵌套的标签,带有标签页面角色的元素实际上并不是个标签面板,从而辅助技术产生负面影响。 + +各角色的页面中都包含了相关的 [ARIA 状态和属性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes),以及带有相应页面的各个属性。 + +## ARIA 角色类型 + +ARIA 角色共分为 6 类: + +### 1. 文档结构角色 + +文档结构角色用于给内容的段落添加一个结构的描述。这些角色大多数都不应该再使用,因为浏览器现在支持带有相同的含义的语义的 HTML 元素。没有相应 HTML 等价的角色,例如 presentation、toolbar 和 tooltip 角色,为辅助技术(例如屏幕阅读器)提供了文档结构信息,而这些信息是没有可用的原生 HTML 的。 + +- [toolbar](/zh-CN/docs/Web/Accessibility/ARIA/Roles/toolbar_role) +- [tooltip](/zh-CN/docs/Web/Accessibility/ARIA/Roles/tooltip_role) +- [feed](/zh-CN/docs/Web/Accessibility/ARIA/Roles/feed_role) +- [math](/zh-CN/docs/Web/Accessibility/ARIA/Roles/math_role) +- [presentation](/zh-CN/docs/Web/Accessibility/ARIA/Roles/presentation_role) / [none](/zh-CN/docs/Web/Accessibility/ARIA/Roles/none_role) +- [note](/zh-CN/docs/Web/Accessibility/ARIA/Roles/note_role) + +对于大多数结构角色,都有可用且受支持的等价的语义 HTML。请避免使用: + +- [application](/zh-CN/docs/Web/Accessibility/ARIA/Roles/application_role) +- [article](/zh-CN/docs/Web/Accessibility/ARIA/Roles/article_role)(请使用 {{HTMLElement('article')}}) +- [cell](/zh-CN/docs/Web/Accessibility/ARIA/Roles/cell_role)(请使用 {{HTMLElement('td')}}) +- [columnheader](/zh-CN/docs/Web/Accessibility/ARIA/Roles/columnheader_role)(请使用 `{{HTMLElement('th', '<th scope="col">')}}`) +- [definition](/zh-CN/docs/Web/Accessibility/ARIA/Roles/definition_role)(请使用 {{HTMLElement('dfn')}}) +- [directory](/zh-CN/docs/Web/Accessibility/ARIA/Roles/directory_role) +- [document](/zh-CN/docs/Web/Accessibility/ARIA/Roles/document_role) +- [figure](/zh-CN/docs/Web/Accessibility/ARIA/Roles/figure_role)(请使用 {{HTMLElement('figure')}}) +- [group](/zh-CN/docs/Web/Accessibility/ARIA/Roles/group_role) +- [heading](/zh-CN/docs/Web/Accessibility/ARIA/Roles/heading_role)(请使用 {{HTMLElement("Heading_Elements", "h1")}} 到 {{HTMLElement("Heading_Elements", "h6")}}) +- [img](/zh-CN/docs/Web/Accessibility/ARIA/Roles/img_role)(请使用 {{HTMLElement('img')}} 或 {{HTMLElement('picture')}}) +- [list](/zh-CN/docs/Web/Accessibility/ARIA/Roles/list_role)(请使用 {{HTMLElement('ul')}} 或 {{HTMLElement('ol')}}) +- [listitem](/zh-CN/docs/Web/Accessibility/ARIA/Roles/listitem_role)(请使用 {{HTMLElement('li')}}) +- [meter](/zh-CN/docs/Web/Accessibility/ARIA/Roles/meter_role)(请使用 {{HTMLElement('meter')}}) +- [row](/zh-CN/docs/Web/Accessibility/ARIA/Roles/row_role)(请使用 {{HTMLElement('tr')}} 和 {{HTMLElement('table')}}) +- [rowgroup](/zh-CN/docs/Web/Accessibility/ARIA/Roles/rowgroup_role)(请使用 {{HTMLElement('thead')}}、{{HTMLElement('tfoot')}} 和 {{HTMLElement('tbody')}}) +- [rowheader](/zh-CN/docs/Web/Accessibility/ARIA/Roles/rowheader_role)(请使用 `{{HTMLElement('th','<th scope="row">')}}`) +- [separator](/zh-CN/docs/Web/Accessibility/ARIA/Roles/separator_role)(请使用 {{HTMLElement('hr')}} 如果它没有焦点) +- [table](/zh-CN/docs/Web/Accessibility/ARIA/Roles/table_role)(请使用 {{HTMLElement('table')}}) +- [term](/zh-CN/docs/Web/Accessibility/ARIA/Roles/term_role)(请使用 {{HTMLElement('dfn')}}) + +这些内容是为保持完整而包含的,但至今很少使用或有用: + +- [`associationlist`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`associationlistitemkey`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`associationlistitemvalue`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`blockquote`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`caption`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`code`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`deletion`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`emphasis`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`insertion`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`paragraph`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`strong`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`subscript`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`superscript`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) +- [`time`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structural_roles) + +### 2. 小部件角色 + +各种小部件角色用于定义常见的交互模式。类似于文档结构角色,有些这些角色与同样受支持的语义原生 HTML 是重复的,因此不应该使用。这两个列表的区别在于,通常来说,小部件角色需要 JavaScript 交互,而文档结构角色通常不需要。 + +- [scrollbar](/zh-CN/docs/Web/Accessibility/ARIA/Roles/scrollbar_role) +- [searchbox](/zh-CN/docs/Web/Accessibility/ARIA/Roles/searchbox_role) +- [separator](/zh-CN/docs/Web/Accessibility/ARIA/Roles/separator_role) (when focusable) +- [slider](/zh-CN/docs/Web/Accessibility/ARIA/Roles/slider_role) +- [spinbutton](/zh-CN/docs/Web/Accessibility/ARIA/Roles/spinbutton_role) +- [switch](/zh-CN/docs/Web/Accessibility/ARIA/Roles/switch_role) +- [tab](/zh-CN/docs/Web/Accessibility/ARIA/Roles/tab_role) +- [tabpanel](/zh-CN/docs/Web/Accessibility/ARIA/Roles/tabpanel_role) +- [treeitem](/zh-CN/docs/Web/Accessibility/ARIA/Roles/treeitem_role) + +避免使用 [button](/zh-CN/docs/Web/Accessibility/ARIA/Roles/button_role)、[checkbox](/zh-CN/docs/Web/Accessibility/ARIA/Roles/checkbox_role)、[gridcell](/zh-CN/docs/Web/Accessibility/ARIA/Roles/gridcell_role)、[link](/zh-CN/docs/Web/Accessibility/ARIA/Roles/link_role)、[menuitem](/zh-CN/docs/Web/Accessibility/ARIA/Roles/menuitem_role)、[menuitemcheckbox](/zh-CN/docs/Web/Accessibility/ARIA/Roles/menuitemcheckbox_role)、[menuitemradio](/zh-CN/docs/Web/Accessibility/ARIA/Roles/menuitemradio_role)、[option](/zh-CN/docs/Web/Accessibility/ARIA/Roles/option_role)、[progressbar](/zh-CN/docs/Web/Accessibility/ARIA/Roles/progressbar_role)、[radio](/zh-CN/docs/Web/Accessibility/ARIA/Roles/radio_role)和 [textbox](/zh-CN/docs/Web/Accessibility/ARIA/Roles/textbox_role),这些仅为完整性而包含。大多数情况下,带有无障碍的交互性的语义等价也是可用且受支持的。更多信息,请参见其各自的角色文档。 + +#### 复合小部件角色 + +- [combobox](/zh-CN/docs/Web/Accessibility/ARIA/Roles/combobox_role) +- [menu](/zh-CN/docs/Web/Accessibility/ARIA/Roles/menu_role) +- [menubar](/zh-CN/docs/Web/Accessibility/ARIA/Roles/menubar_role) +- [tablist](/zh-CN/docs/Web/Accessibility/ARIA/Roles/tablist_role) +- [tree](/zh-CN/docs/Web/Accessibility/ARIA/Roles/tree_role) +- [treegrid](/zh-CN/docs/Web/Accessibility/ARIA/Roles/treegrid_role) + +避免使用 [grid](/zh-CN/docs/Web/Accessibility/ARIA/Roles/grid_role)、[listbox](/zh-CN/docs/Web/Accessibility/ARIA/Roles/listbox_role) 和 [radiogroup](/zh-CN/docs/Web/Accessibility/ARIA/Roles/radio_role),这些仅为完整性而包含。更多信息,请参见其各自的角色文档。 + +注意还有个 widget 角色(`role="widget"`),这是个抽象的角色,不在小部件角色类别中。 + +### 3. 陆标角色 + +陆标角色提供了一种识别网页的组织和结构的方法。对页面的各个部分进行分类并加标,可以以编程方式呈现出通过布局直观传达的结构信息。屏幕阅读器使用陆标角色为页面的重要部分提供键盘导航。谨慎使用这些。太多的陆标角色会在屏幕阅读器中产生“噪音”,导致难以理解页面的整体布局。 + +- [banner](/zh-CN/docs/Web/Accessibility/ARIA/Roles/banner_role) (文档 {{HTMLElement('header')}}) +- [complementary](/zh-CN/docs/Web/Accessibility/ARIA/Roles/complementary_role)({{HTMLElement('aside')}}) +- [contentinfo](/zh-CN/docs/Web/Accessibility/ARIA/Roles/contentinfo_role)({{HTMLElement('footer')}}) +- [form](/zh-CN/docs/Web/Accessibility/ARIA/Roles/form_role)({{HTMLElement('form')}}) +- [main](/zh-CN/docs/Web/Accessibility/ARIA/Roles/main_role)({{HTMLElement('main')}}) +- [navigation](/zh-CN/docs/Web/Accessibility/ARIA/Roles/navigation_role)({{HTMLElement('nav')}}) +- [region](/zh-CN/docs/Web/Accessibility/ARIA/Roles/region_role)({{HTMLElement('section')}}) +- [search](/zh-CN/docs/Web/Accessibility/ARIA/Roles/search_role) + +### 4. 实时区域角色 + +实时区域角色用于定义带有动态更改的内容的元素。动态变化在视觉上明显时,具有视力的的用户可以看到。这些角色可帮助低视力和盲人用户了解内容是否已更新。辅助技术,例如屏幕阅读器,可以读出动态内容更改: + +- [alert](/zh-CN/docs/Web/Accessibility/ARIA/Roles/alert_role) +- [log](/zh-CN/docs/Web/Accessibility/ARIA/Roles/log_role) +- [marquee](/zh-CN/docs/Web/Accessibility/ARIA/Roles/marquee_role) +- [status](/zh-CN/docs/Web/Accessibility/ARIA/Roles/status_role) +- [timer](/zh-CN/docs/Web/Accessibility/ARIA/Roles/timer_role) + +### 5. 窗口角色 + +窗口角色为同一文档内的主文档窗口定义了子窗口,例如弹出模式对话框: + +- [alertdialog](/zh-CN/docs/Web/Accessibility/ARIA/Roles/alertdialog_role) +- [dialog](/zh-CN/docs/Web/Accessibility/ARIA/Roles/dialog_role) + +### 6. 抽象角色 + +抽象角色仅由浏览器使用,以帮助组织和简化文档。编写 HTML 标记的开发者不应使用这些抽象角色。这样做不会向辅助技术或用户传达任何有意义的信息。 + +避免使用[command](/zh-CN/docs/Web/Accessibility/ARIA/Roles/command_role)、[composite](/zh-CN/docs/Web/Accessibility/ARIA/Roles/composite_role)、[input](/zh-CN/docs/Web/Accessibility/ARIA/Roles/input_role)、[landmark](/zh-CN/docs/Web/Accessibility/ARIA/Roles/landmark_role)、[range](/zh-CN/docs/Web/Accessibility/ARIA/Roles/range_role)、[roletype](/zh-CN/docs/Web/Accessibility/ARIA/Roles/roletype_role)、[section](/zh-CN/docs/Web/Accessibility/ARIA/Roles/section_role)、[sectionhead](/zh-CN/docs/Web/Accessibility/ARIA/Roles/sectionhead_role)、[select](/zh-CN/docs/Web/Accessibility/ARIA/Roles/select_role)、[structure](/zh-CN/docs/Web/Accessibility/ARIA/Roles/structure_role)、[widget](/zh-CN/docs/Web/Accessibility/ARIA/Roles/widget_role) 和 [window](/zh-CN/docs/Web/Accessibility/ARIA/Roles/window_role)。 + +> **Note:** 不要在你的网站和应用中使用抽象角色。抽象角色是由浏览器使用的,这里列出来仅用于参考。 + +> **Warning:** “Abstract roles are used for the ontology. Authors **MUST NOT** use abstract roles in content.” ——WAI-ARIA 规定 + +## MDN 中定义的角色 + +以下是包含 MDN 中讨论的 WAI-ARIA 角色的参考页面。 {{SubpagesWithSummaries}} +## 参见 + +- [使用 ARIA:角色、状态和属性](/zh-CN/docs/Web/Accessibility/ARIA/ARIA_Techniques) +- [ARIA 状态和属性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes) + \ No newline at end of file + diff --git a/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md b/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md index ebec3983e874ed..1be3136d2a2653 100644 --- a/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md @@ -3,7 +3,7 @@ title: "ARIA: listitem 角色" slug: Web/Accessibility/ARIA/Roles/listitem_role --- -ARIA `listitem` 角色可用于标识项目列表中的项目。它通常与 [`list`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/list_role) 角色结合使用,用于标识列表容器。 +ARIA `listitem` 角色可用于标识项目列表中的项目。它通常与 [`list`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/list_role) 角色结合使用,用于标识列表容器。 ```html
    From b2ed4c0efb66243dd88bef39f08f400876a89d70 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Sun, 23 Jul 2023 04:49:44 +0000 Subject: [PATCH 07/72] prettier --- .../zh-cn/web/accessibility/aria/roles/button_role/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/files/zh-cn/web/accessibility/aria/roles/button_role/index.md b/files/zh-cn/web/accessibility/aria/roles/button_role/index.md index a19342215bddec..cd882ea88afe76 100644 --- a/files/zh-cn/web/accessibility/aria/roles/button_role/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/button_role/index.md @@ -75,10 +75,10 @@ As an example, the mute button on an audio player labeled "mute" could indicate ### 键盘交互 -| 按键 | 功能 | -| ---------------- | --------------------- | +| 按键 | 功能 | +| ---------------- | ---------- | | Enter | 激活按钮。 | -| Space | 激活按钮。 | +| Space | 激活按钮。 | Following button activation, focus is set depending on the type of action the button performs. For example, if clicking the button opens a dialog, the focus should move to the dialog. If the button closes a dialog, focus should return to the button that opened the dialog unless the function performed in the dialog context logically leads to a different element. If the button alters the current context, such as muting and unmuting an audio file, then focus typically remains on the button. From dfa03e657f0d1847217a318b0ecd5f3f130300fa Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Sun, 23 Jul 2023 11:54:28 +0000 Subject: [PATCH 08/72] Fix --- .../web/accessibility/aria/roles/listbox_role/index.md | 4 ++-- .../web/accessibility/aria/roles/listitem_role/index.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md b/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md index 857f5171dc9032..0a3eba8108366d 100644 --- a/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md @@ -215,8 +215,8 @@ slug: Web/Accessibility/ARIA/Roles/listbox_role diff --git a/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md b/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md index 1be3136d2a2653..89ace03eedb243 100644 --- a/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/listitem_role/index.md @@ -69,9 +69,9 @@ ARIA `listitem` 角色可用于标识项目列表中的项目。它通常与 [`l - [HTML `
      ` 元素](/zh-CN/docs/Web/HTML/Element/ol) - [ARIA:`list` 角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles/list_role) - [ARIA:`group` 角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles/group_role) -- [Accessibility Object Model](https://wicg.github.io/aom/spec/) -- [ARIA in HTML](https://w3c.github.io/html-aria/) -- [ARIA Lists examples](https://www.scottohara.me/blog/2018/05/26/aria-lists.html) — by Scott O'Hara +- [无障碍对象模型](https://wicg.github.io/aom/spec/) +- [HTML 中的 ARIA](https://w3c.github.io/html-aria/) +- [ARIA 列表示例](https://www.scottohara.me/blog/2018/05/26/aria-lists.html) — by Scott O'Hara
    -**ARIA** (Accessible Rich Internet Applications) 是一组[角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles)和[特性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes),用于定义使残障人士更容易访问 Web 内容和 Web 应用程序(尤其是使用 JavaScript 开发的应用程序)的方法。 +无障碍富互联网应用(Accessible Rich Internet Applications,**ARIA**)是一组[角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles)和[特性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes),用于定义使残障人士更易于访问 web 内容和 web 应用程序(尤其是使用 JavaScript 开发的应用程序)的方法。 -它补充了 HTML,以便在没有其他机制时可以将应用程序中常用的交互和小部件传递给辅助技术。例如,ARIA 支持 HTML4 中的无障碍 JavaScript 小部件、表单提示和错误消息、实时内容更新等。 +它补充了 HTML,以便在没有其他机制时可以将应用程序中常用的交互和小部件传递给辅助技术。例如,ARIA 支持无障碍 JavaScript 小部件、表单提示和错误消息、实时内容更新等。 > **警告:** 许多这些小部件后来被合并到 HTML5 中,如果存在这样的元素,**开发人员应该更喜欢使用正确语义的 HTML 元素而不是使用 ARIA**。例如,原生元素具有内置的[键盘无障碍](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)、角色和状态。但是,如果您选择使用 ARIA,则您有责任在脚本中模仿(等效)浏览器行为。 使用 [ARIA 的第一规则](https://www.w3.org/TR/using-aria/#rule1)是“如果你能够使用原生的 HTML 元素或属性,并且有你需要但已经建立在里面的语义和行为,而不是重新调整元素的用途并添加 ARIA 角色、状态或者属性来使它更加无障碍,那么你就应该如此。” -> **注意:** 有个说法叫做“ARIA 宁缺毋滥”。在 [WebAim's survey of over one million home pages](https://webaim.org/projects/million/#aria) 中,他们发生,有 ARIA 存在的主页比那些没有 ARIA 的,多检测出了平均 41% 的错误。尽管 ARIA 是为了使网页更加无障碍而设计的,但是如果使用不当,可能适得其反。 +> **备注:** 有个说法叫做“ARIA 宁缺毋滥”。在 [WebAim's survey of over one million home pages](https://webaim.org/projects/million/#aria) 中,他们发生,有 ARIA 存在的主页比那些没有 ARIA 的,多检测出了平均 41% 的错误。尽管 ARIA 是为了使网页更加无障碍而设计的,但是如果使用不当,可能适得其反。 这是进度条小部件的标记: From a0979517bceceded4fd7a78138ab37713e4c106c Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Mon, 31 Jul 2023 01:26:11 +0000 Subject: [PATCH 10/72] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/zh-cn/web/accessibility/aria/index.md | 12 ++++++------ files/zh-cn/web/accessibility/aria/roles/index.md | 4 ++-- .../accessibility/aria/roles/listbox_role/index.md | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/files/zh-cn/web/accessibility/aria/index.md b/files/zh-cn/web/accessibility/aria/index.md index 89c8ff9020c2b0..7349fdfd0e5ad7 100644 --- a/files/zh-cn/web/accessibility/aria/index.md +++ b/files/zh-cn/web/accessibility/aria/index.md @@ -7,7 +7,7 @@ slug: Web/Accessibility/ARIA
    1. ARIA 注解
    2. ARIA 指南
    3. -
    4. ARIA 流动区域
    5. +
    6. ARIA 实时区域
    7. ARIA 屏幕阅读器实现指南
    8. 使用 ARIA:角色、状态和属性
    9. 多部分标签
    10. @@ -25,15 +25,15 @@ slug: Web/Accessibility/ARIA
    -无障碍富互联网应用(Accessible Rich Internet Applications,**ARIA**)是一组[角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles)和[特性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes),用于定义使残障人士更易于访问 web 内容和 web 应用程序(尤其是使用 JavaScript 开发的应用程序)的方法。 +无障碍富互联网应用(Accessible Rich Internet Applications,**ARIA**)是一组[角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles)和[属性](/zh-CN/docs/Web/Accessibility/ARIA/Attributes),用于定义使残障人士更易于访问 web 内容和 web 应用程序(尤其是使用 JavaScript 开发的应用程序)的方法。 它补充了 HTML,以便在没有其他机制时可以将应用程序中常用的交互和小部件传递给辅助技术。例如,ARIA 支持无障碍 JavaScript 小部件、表单提示和错误消息、实时内容更新等。 -> **警告:** 许多这些小部件后来被合并到 HTML5 中,如果存在这样的元素,**开发人员应该更喜欢使用正确语义的 HTML 元素而不是使用 ARIA**。例如,原生元素具有内置的[键盘无障碍](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)、角色和状态。但是,如果您选择使用 ARIA,则您有责任在脚本中模仿(等效)浏览器行为。 +> **警告:** 许多这些小部件在现代浏览器中都已经完全支持。如果有正确语义的 HTML 元素存在的话,**开发人员应该更喜欢使用这样的元素而不是使用 ARIA**。例如,原生元素具有内置的[键盘无障碍](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)、角色和状态。但是,如果您选择使用 ARIA,则你有责任在脚本中模仿(等效)浏览器行为。 使用 [ARIA 的第一规则](https://www.w3.org/TR/using-aria/#rule1)是“如果你能够使用原生的 HTML 元素或属性,并且有你需要但已经建立在里面的语义和行为,而不是重新调整元素的用途并添加 ARIA 角色、状态或者属性来使它更加无障碍,那么你就应该如此。” -> **备注:** 有个说法叫做“ARIA 宁缺毋滥”。在 [WebAim's survey of over one million home pages](https://webaim.org/projects/million/#aria) 中,他们发生,有 ARIA 存在的主页比那些没有 ARIA 的,多检测出了平均 41% 的错误。尽管 ARIA 是为了使网页更加无障碍而设计的,但是如果使用不当,可能适得其反。 +> **备注:** 有个说法叫做“ARIA 宁缺毋滥”。在 [WebAim's survey of over one million home pages](https://webaim.org/projects/million/#aria) 中,他们发现,有 ARIA 存在的主页比那些没有 ARIA 的,多检测出了平均 41% 的错误。尽管 ARIA 是为了使网页更加无障碍而设计的,但是如果使用不当,可能适得其反。 这是进度条小部件的标记: @@ -75,9 +75,9 @@ function updateProgress(percentComplete) { 75 % ``` -> **Note:** {{HTMLElement('progress')}} 元素不允许 `min` 属性,最小值永远为 0。 +> **注释:** {{HTMLElement('progress')}} 元素不允许 `min` 属性,最小值永远为 0。 -> HTML 陆标元素({{HTMLElement("main")}}、{{HTMLElement("header")}}、{{HTMLElement("nav")}} 等)具有内置的 ARIA 角色,因此有无需复制它们。 +> HTML 地标元素({{HTMLElement("main")}}、{{HTMLElement("header")}}、{{HTMLElement("nav")}} 等)具有内置的 ARIA 角色,因此有无需复制它们。 ## 支持 diff --git a/files/zh-cn/web/accessibility/aria/roles/index.md b/files/zh-cn/web/accessibility/aria/roles/index.md index ef4dfe7da605ae..489445e4283ae0 100644 --- a/files/zh-cn/web/accessibility/aria/roles/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/index.md @@ -97,9 +97,9 @@ ARIA 角色共分为 6 类: 注意还有个 widget 角色(`role="widget"`),这是个抽象的角色,不在小部件角色类别中。 -### 3. 陆标角色 +### 3. 地标角色 -陆标角色提供了一种识别网页的组织和结构的方法。对页面的各个部分进行分类并加标,可以以编程方式呈现出通过布局直观传达的结构信息。屏幕阅读器使用陆标角色为页面的重要部分提供键盘导航。谨慎使用这些。太多的陆标角色会在屏幕阅读器中产生“噪音”,导致难以理解页面的整体布局。 +地标角色提供了一种识别网页的组织和结构的方法。对页面的各个部分进行分类并加标,可以以编程方式呈现出通过布局直观传达的结构信息。屏幕阅读器使用地标角色为页面的重要部分提供键盘导航。谨慎使用这些。太多的地标角色会在屏幕阅读器中产生“噪音”,导致难以理解页面的整体布局。 - [banner](/zh-CN/docs/Web/Accessibility/ARIA/Roles/banner_role) (文档 {{HTMLElement('header')}}) - [complementary](/zh-CN/docs/Web/Accessibility/ARIA/Roles/complementary_role)({{HTMLElement('aside')}}) diff --git a/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md b/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md index 0a3eba8108366d..f15a676ecbeccf 100644 --- a/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.md @@ -215,7 +215,7 @@ slug: Web/Accessibility/ARIA/Roles/listbox_role
``` -这个进度条是使用 {{HTMLElement("div")}} 构建的,没有任何意义。我们加入 ARIA 角色和属性以添加意义。在这个例子中,[`role="progressbar"`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/progressbar_role) 属性告知浏览器,这个元素实际上是一个由 JavaScript 驱动的进度条小部件。[`aria-valuemin`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuemin) 和 [`aria-valuemax`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuemax) 属性指定进度条的最小值和最大值,,[`aria-valuenow`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuenow) 描述进度条的当前状态和因此必须使用 JavaScript 保持更新。 +这个进度条是使用 {{HTMLElement("div")}} 构建的,没有任何意义。我们加入 ARIA 角色和属性以添加意义。在这个例子中,[`role="progressbar"`](/zh-CN/docs/Web/Accessibility/ARIA/Roles/progressbar_role) 属性告知浏览器,这个元素实际上是一个由 JavaScript 驱动的进度条小部件。[`aria-valuemin`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuemin) 和 [`aria-valuemax`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuemax) 属性指定进度条的最小值和最大值,[`aria-valuenow`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-valuenow) 描述进度条的当前状态,因此必须使用 JavaScript 保持更新。 除了将它们直接放置在元素中之外,还可以将 ARIA 属性添加到元素中,并使用 JavaScript 代码动态更新,如下所示: From 60fa5a0b334b74f3085203be9740ba7bdea795dd Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:03:19 +0800 Subject: [PATCH 19/72] Update files/zh-cn/web/accessibility/aria/index.md Co-authored-by: A1lo --- files/zh-cn/web/accessibility/aria/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/accessibility/aria/index.md b/files/zh-cn/web/accessibility/aria/index.md index 609cda65f30939..57ed7a0c034e39 100644 --- a/files/zh-cn/web/accessibility/aria/index.md +++ b/files/zh-cn/web/accessibility/aria/index.md @@ -29,7 +29,7 @@ slug: Web/Accessibility/ARIA 它补充了 HTML,以便在没有其他机制时可以将应用程序中常用的交互和小部件传递给辅助技术。例如,ARIA 支持无障碍 JavaScript 小部件、表单提示和错误消息、实时内容更新等。 -> **警告:** 许多这些小部件在现代浏览器中都已经完全支持。如果有正确语义的 HTML 元素存在的话,**开发人员应该更喜欢使用这样的元素而不是使用 ARIA**。例如,原生元素具有内置的[键盘无障碍](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)、角色和状态。但是,如果您选择使用 ARIA,则你有责任在脚本中模仿(等效)浏览器行为。 +> **警告:** 许多这些小部件在现代浏览器中都已经完全支持。如果有正确语义的 HTML 元素存在的话,**开发人员应该更喜欢使用这样的元素而不是使用 ARIA**。例如,原生元素具有内置的[键盘无障碍](/zh-CN/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)、角色和状态。但是,如果你选择使用 ARIA,则你有责任在脚本中模仿等效的浏览器行为。 使用 [ARIA 的第一规则](https://www.w3.org/TR/using-aria/#rule1)是“如果你能够使用原生的 HTML 元素或属性,并且有你需要但已经建立在里面的语义和行为,而不是重新调整元素的用途并添加 ARIA 角色、状态或者属性来使它更加无障碍,那么你就应该如此。” From 3c2ba74e5306ae5f2acc4e72572d5187c6de5533 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:03:29 +0800 Subject: [PATCH 20/72] Update files/zh-cn/web/accessibility/aria/index.md Co-authored-by: A1lo --- files/zh-cn/web/accessibility/aria/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/accessibility/aria/index.md b/files/zh-cn/web/accessibility/aria/index.md index 57ed7a0c034e39..f989332acf4320 100644 --- a/files/zh-cn/web/accessibility/aria/index.md +++ b/files/zh-cn/web/accessibility/aria/index.md @@ -77,7 +77,7 @@ function updateProgress(percentComplete) { > **备注:** {{HTMLElement('progress')}} 元素不允许 `min` 属性,最小值永远为 0。 -> HTML 地标元素({{HTMLElement("main")}}、{{HTMLElement("header")}}、{{HTMLElement("nav")}} 等)具有内置的 ARIA 角色,因此有无需复制它们。 +> **备注:** HTML 地标元素({{HTMLElement("main")}}、{{HTMLElement("header")}}、{{HTMLElement("nav")}} 等)具有内置的 ARIA 角色,因此有无需复制它们。 ## 支持 From f71c216305e91e5287c78d083c139e3eb0ba3f02 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:03:40 +0800 Subject: [PATCH 21/72] Update files/zh-cn/web/accessibility/aria/index.md Co-authored-by: A1lo --- files/zh-cn/web/accessibility/aria/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/accessibility/aria/index.md b/files/zh-cn/web/accessibility/aria/index.md index f989332acf4320..b2933aeaceeeb9 100644 --- a/files/zh-cn/web/accessibility/aria/index.md +++ b/files/zh-cn/web/accessibility/aria/index.md @@ -67,7 +67,7 @@ function updateProgress(percentComplete) { } ``` -所有对非辅助技术的可用的内容都应该对辅助技术可用。类似地,不应包含针对辅助技术用户使用但对于不使用辅助技术的用户无法访问的任何功能。这个进度条需要有相应的样式,从而看起来像进度条。 +所有对非辅助技术的可用的内容都应该对辅助技术可用。类似地,不应包含针对辅助技术用户使用但对于不使用辅助技术的用户无法访问的任何特性。这个进度条需要有相应的样式,从而看起来像进度条。 如果使用原生的 {{HTMLElement('progress')}} 元素,则会简单得多: From ff81eba464a561e6b3e5c675507673e12919d521 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:04:12 +0800 Subject: [PATCH 22/72] Update files/zh-cn/web/accessibility/aria/index.md Co-authored-by: A1lo --- files/zh-cn/web/accessibility/aria/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/accessibility/aria/index.md b/files/zh-cn/web/accessibility/aria/index.md index b2933aeaceeeb9..52214a81fd8a4b 100644 --- a/files/zh-cn/web/accessibility/aria/index.md +++ b/files/zh-cn/web/accessibility/aria/index.md @@ -33,7 +33,7 @@ slug: Web/Accessibility/ARIA 使用 [ARIA 的第一规则](https://www.w3.org/TR/using-aria/#rule1)是“如果你能够使用原生的 HTML 元素或属性,并且有你需要但已经建立在里面的语义和行为,而不是重新调整元素的用途并添加 ARIA 角色、状态或者属性来使它更加无障碍,那么你就应该如此。” -> **备注:** 有个说法叫做“ARIA 宁缺毋滥”。在 [WebAim's survey of over one million home pages](https://webaim.org/projects/million/#aria) 中,他们发现,有 ARIA 存在的主页比那些没有 ARIA 的,多检测出了平均 41% 的错误。尽管 ARIA 是为了使网页更加无障碍而设计的,但是如果使用不当,可能适得其反。 +> **备注:** 有个说法叫做“ARIA 宁缺毋滥”。在 [WebAim 对超过 100 万个主页的调查](https://webaim.org/projects/million/#aria)中,他们发现,有 ARIA 存在的主页比那些没有 ARIA 的,多检测出了平均 41% 的错误。尽管 ARIA 是为了使网页更加无障碍而设计的,但是如果使用不当,可能适得其反。 这是进度条小部件的标记: From 20c0eb44191697d6f735ad5961b05819f4a941fa Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Thu, 3 Aug 2023 03:13:30 +0000 Subject: [PATCH 23/72] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/zh-cn/web/accessibility/aria/index.md | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/files/zh-cn/web/accessibility/aria/index.md b/files/zh-cn/web/accessibility/aria/index.md index 52214a81fd8a4b..5f965273a6f0f0 100644 --- a/files/zh-cn/web/accessibility/aria/index.md +++ b/files/zh-cn/web/accessibility/aria/index.md @@ -81,21 +81,12 @@ function updateProgress(percentComplete) { ## 支持 -与任何其他 Web 技术一样,对 ARIA 有不同程度的支持。支持基于所使用的操作系统和浏览器,以及与之交互的辅助技术类型。此外,操作系统、浏览器和辅助技术的版本也是影响因素。较旧的软件版本可能不支持某些 ARIA 角色、仅部分支持或误报其功能。 +与任何其他 Web 技术一样,ARIA 也有不同程度的支持。支持基于所使用的操作系统和浏览器,以及与之交互的辅助技术类型。此外,操作系统、浏览器和辅助技术的版本也是影响因素。较旧的软件版本可能不支持某些 ARIA 角色、仅部分支持或误报其功能。 -同样重要的是要承认一些依赖辅助技术的人不愿意升级他们的软件,因为害怕失去与他们的计算机和浏览器交互的能力。因此,尽可能对 [使用语义化的 HTML 元素](/zh-CN/docs/Learn/Accessibility/HTML) 很重要,因为语义 HTML 对辅助技术的支持要好得多。 +同样重要的是要承认一些依赖辅助技术的人不愿意升级他们的软件,因为害怕失去与他们的计算机和浏览器交互的能力。因此,尽可能[使用语义化的 HTML 元素](/zh-CN/docs/Learn/Accessibility/HTML)很重要,因为语义 HTML 对辅助技术的支持要好得多。 使用实际辅助技术测试您编写的 ARIA 也很重要。就像浏览器模拟器和模拟器不是测试完全支持的有效解决方案一样,代理辅助技术解决方案不足以完全保证功能。 -## 教程 - -- [ARIA 简介](/zh-CN/docs/Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets) - - : 快速介绍如何使用 ARIA 访问动态内容。另请参阅 2008 年的经典 [ARIA intro by Gez Lemon](https://dev.opera.com/articles/view/introduction-to-wai-aria/)。 -- [Videos of screen readers using ARIA](https://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/) - - : 查看来自网络的真实和简化示例,视频包括 ARIA“之前”和 ARIA“之后”。 -- [Using ARIA](https://w3c.github.io/using-aria/) - - : 开发人员实用指南。它建议在 HTML 元素上使用哪些 ARIA 属性。建议是基于实施的实际情况。 - ## 参考 - [ARIA 角色](/zh-CN/docs/Web/Accessibility/ARIA/Roles) @@ -105,9 +96,9 @@ function updateProgress(percentComplete) { ## 标准化工作 -- [WAI-ARIA Specification](https://www.w3.org/TR/wai-aria-1.1/) +- [WAI-ARIA 规范](https://www.w3.org/TR/wai-aria-1.1/) - : W3C 规范本身。 -- [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.1/) +- [WAI-ARIA 创作实践](https://www.w3.org/TR/wai-aria-practices-1.1/) - : 官方最佳实践记录了如何最好地对常见小部件和交互进行 ARIA 化。一个很好的资源。 ## 脚本小部件的 ARIA From 52b4b044a3c1ca95895d689e9636eee83b974490 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Fri, 4 Aug 2023 16:40:51 +0800 Subject: [PATCH 24/72] Update files/zh-cn/web/accessibility/aria/roles/button_role/index.md Co-authored-by: A1lo --- files/zh-cn/web/accessibility/aria/roles/button_role/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/accessibility/aria/roles/button_role/index.md b/files/zh-cn/web/accessibility/aria/roles/button_role/index.md index bb6ffefb7f8584..c8b08e3c364fb0 100644 --- a/files/zh-cn/web/accessibility/aria/roles/button_role/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/button_role/index.md @@ -3,7 +3,7 @@ title: ARIA:button 角色 slug: Web/Accessibility/ARIA/Roles/button_role --- -`button` 角色应该用于可单击的元素,当用户激活时触发响应。添加 `role="button"` 会告诉屏幕阅读器这个元素是个按钮,但是不提供按钮的功能。你应该使用 {{HTMLElement("button")}} 或者 {{HTMLElement("input")}} 以及 `type="button"`。 +`button` 角色用于可单击的元素,在用户激活时触发响应。添加 `role="button"` 会告诉屏幕阅读器这个元素是个按钮,但是不提供按钮的功能。你应该使用的 {{HTMLElement("button")}} 或者 `type="button"` 的 {{HTMLElement("input")}}。 ## 描述 From 19c3e043b208664a0efa415e376e61d4956f7776 Mon Sep 17 00:00:00 2001 From: SolidBlock <32444848+SolidBlock-cn@users.noreply.github.com> Date: Fri, 4 Aug 2023 16:41:37 +0800 Subject: [PATCH 25/72] Update files/zh-cn/web/accessibility/aria/roles/button_role/index.md Co-authored-by: A1lo --- files/zh-cn/web/accessibility/aria/roles/button_role/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/accessibility/aria/roles/button_role/index.md b/files/zh-cn/web/accessibility/aria/roles/button_role/index.md index c8b08e3c364fb0..aa38b2b748648b 100644 --- a/files/zh-cn/web/accessibility/aria/roles/button_role/index.md +++ b/files/zh-cn/web/accessibility/aria/roles/button_role/index.md @@ -21,7 +21,7 @@ button 角色会向辅助技术(如屏幕阅读器)识别一个元素为按 ``` -> **备注:** 如果使用 `role="button"` 而不是语义化的 ` ``` -> **备注:** 如果使用 `role="button"` 而不是语义化的 ` ``` -> **备注:** 如果使用 `role="button"` 而不是语义化的 `