如何使用 aria-describedby 和 aria-labelledby 构建无障碍性表格

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

对于网页开发者而言,无障碍性根据 Web 内容可访问性指南 (WCAG) 中的构建指南是至关重要的。创造一个无障碍性友好的网页需要考虑到一些较少为人所知的松散技巧。这篇文章将向您介绍如何使用 aria-describedby 和 aria-labelledby 属性来构建无障碍性表格。

什么是 aria-describedby 和 aria-labelledby?

"aria-describedby" 和 "aria-labelledby" 是两个在 HTML 中定义一个和多个不同目的的属性。它们都是用来提供网页上的更丰富语义和更好用户体验的结构化元数据操作方式。

  • "aria-describedby" 属性的作用是为当前元素指定一个或多个文本,这些文本提供如何使用该元素更完整和详细的信息。
  • "aria-labelledby" 属性的作用主要是为当前元素定义一个 ID,这个 ID 关联的元素内容被用来作当前元素的名称。

这两个属性的组合可以为在网页上访问带有障碍的用户提供更好的使用体验。

如何使用 aria-describedby 和 aria-labelledby 属性来构建无障碍性表格?

表格是一个常见的数据呈现方式。而因缺乏足够的结构标记,很容易影响到使用辅助技术的用户的网页阅读体验。

为表格创建标题

属性 "aria-describedby" 和 "aria-labelledby" 可以用来创建表格标题,从而使得障碍用户更容易了解表格的内容和结构。另外,正常用户也将遵循这一规则以改善理解该表格。

  -------
    -------- --------------------- --------------------------------------------------------
    -------
      ----
        --- -------------------
        --- ---------------------
      -----
    --------
    -------
      ----
        ----------
        ------ ---- -------
      -----
      ----
        ----------
        ------ --- -------
      -----
    --------
  --------

在上面的示例中,我们使用了 <caption> 标签来为表格创建描述文本。该元素的 ID 属性设置为 "table-caption-id",以便我们能够在其他地方引用它。同时,通过定义 "aria-describedby" 属性,我们允许为该表格提供描述信息的其他元素被插入到该属性中去。

为表格列创建标题

表格内的列可以有一个多级标题。这个多级标题对于这一列的内容进行了更精确的描述,这个描述信息对于无障碍用户十分关键。我们使用 "aria-describedby" 属性来附加列的描述信息。

  -------
    -------- --------------------- --------------------------------------------------------
    -------
      ----
        --- ----------- ------------------------
        --- ----------- ---------------------------
      -----
    --------
    -------
      ----
        --- ------------------
        --- --------------------------------------- ---- -------
      -----
      ----
        --- ------------------
        --- --------------------------------------- --- -------
      -----
    --------
  --------

在这个例子中,我们给了标题和教程名称两个 <th> 元素普通和唯一的 ID。 "aria-describedby" 属性被绑定到 "td" 元素上并指向了标题的 ID。

结论

通过使用 "aria-describedby" 和 "aria-labelledby" 属性,我们可以更好地构建无障碍性友好的表格。对于使用辅助技术的人们,这个很重要。我们希望随着越来越多的人关注无障碍性设计,这些更细粒度的标签也将更加普及,并且更好地被 Web 服务开发者采用。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/671b44569babaf620faa6cbf


猜你喜欢

  • AngularJS SPA 应用的模块管理技巧

    AngularJS(以下简称 Angular)是一款优秀的前端 MVC/MVVM 框架,支持构建单页面 web 应用(Single Page Application,SPA)。

    17 天前
  • 运用 Fastify 和 Nginx 构建高可用性和负载平衡器

    前言 在前端领域,如何构建高可用性和负载平衡器是一个至关重要的问题。本文将介绍如何运用 Fastify 和 Nginx 构建高可用性和负载平衡器,帮助开发者更好地解决这一问题。

    17 天前
  • Custom Elements 如何正确地使用 CSS Flex 布局?

    Flex 布局是一种强大的 CSS 布局模式,它适用于各种不同的项目。自定义元素是一种完全自定义的 HTML 元素,它可以包括 JavaScript、CSS 和 HTML。

    17 天前
  • 如何自定义 ESLint 编码规范

    随着前端技术的不断发展和更新,代码质量始终是我们关注的重点之一。而 ESLint 是一个可扩展、模块化的 JavaScript 代码检查工具,可以帮助我们规范代码,避免出现一些常见的错误和不良实践。

    17 天前
  • 如何通过 Headless CMS 实现快速迭代?

    在现在这个快节奏的前端开发环境中,要快速迭代你的网站或者应用程序,常常需要使用一些高效的工具。Headless CMS (无头 CMS) 正是这样一种工具,为前端开发人员提供了一种解耦的方式,从而实现...

    17 天前
  • Vue.js 中重置 data 数据的方法

    在 Vue.js 中,我们通常会将数据存储在组件的 data 属性中,并根据需要对其进行修改和访问。但是在某些情况下,我们可能需要重置 data 数据,以便将其还原为初始状态或更改其现有值。

    17 天前
  • 如何在响应式设计中兼容低端设备

    随着移动设备和不同尺寸的屏幕的出现,响应式设计日益成为网页设计的主流趋势。但是,在设计响应式网站时,如何兼容低端设备却是一个问题。本文将介绍一些关键技术和最佳实践,帮助您在设计响应式网站时兼容低端设备...

    17 天前
  • 牢记 Promise 中的 then() 和 catch() 顺序

    对于前端开发人员来说,Promise 已经成为了日常编程中必不可少的部分。Promise 的 then() 方法和 catch() 方法是 Promise 最常用的两个方法。

    17 天前
  • 在 Kubernetes 中安全使用第三方 Docker 镜像的方法

    在 Kubernetes 中,使用 Docker 镜像是非常普遍的操作。然而,不安全的镜像会对集群造成重大威胁。因此,在 Kubernetes 中安全使用第三方 Docker 镜像是非常重要的。

    17 天前
  • 无障碍设计实践:网页键盘访问性与屏幕阅读器适配

    前言 在设计和开发网站时,我们经常会考虑如何使网站更加美观和易用。但是,在这个过程中,我们有时会忽略有些用户可能面临的访问障碍,这些用户可能是视障人士、听障人士、身体残障人士以及长期阅读的用户。

    17 天前
  • 在使用 Custom Elements 时如何正确地使用 CSS 网格布局?

    Custom Elements 是 Web Components 规范的重要组成部分,可以帮助开发者构建可重用和独立的 UI 组件。在使用 Custom Elements 开发 UI 组件时,如何正确...

    17 天前
  • Cypress 测试框架在 CI/CD 流水线自动化测试的最佳实践

    前言 对于前端开发人员来说,自动化测试已经不再是一个选项,而是必不可少的一环。自动化测试能够大幅度提高测试效率,减少测试时间和成本,并且可以有效的帮助我们发现潜在的 bug。

    17 天前
  • JavaScript ES9:新特性快速入门指南

    JavaScript ES9也被称为ECMAScript 2018,是ECMAScript标准第九版的其中一部分,引入了几个新特性和语言功能,为前端开发者提供了更加便捷和高效的编程工具。

    17 天前
  • 在使用 Hapi 框架构建 Node.js 应用时遇到的路由设计问题及解决方式

    引言 Hapi 是一个非常流行的 Node.js Web 框架,它的不同版本已经被广泛应用于生产环境中。这里我们主要讨论在使用 Hapi 时遇到的路由设计问题及解决方式。

    17 天前
  • ES8 新特性:Object 的属性描述符

    在 JavaScript 对象中,每个属性可以具有一些描述符,这些描述符包含了这个属性的特定行为。在 ES8 中,Object 对象增加了一个方便的方法来获取和设置属性描述符。

    17 天前
  • 基于 GraphQL 的后端数据模拟技术

    GraphQL 是一种由 Facebook 开发的数据查询语言。它允许客户端指定它需要哪些数据,从而避免传输不必要的数据。GraphQL 已经成为了很多前端应用程序的首选技术,因为它可以大大提高应用的...

    17 天前
  • ECMAScript 2016:解析模板字符串中嵌套的模板字符串

    作为前端开发者,我们常常需要使用模板字符串来生成动态的 HTML 或其他文本内容。而在 ECMAScript 2015 中推出的模板字符串就为我们提供了这样的功能,它能够让我们直接在字符串中嵌入表达式...

    17 天前
  • 如何应对 PWA 的兼容性问题

    随着 PWA 的不断普及,越来越多的网站开始采用 PWA 技术。但是,由于各种原因,PWA 在不同平台和浏览器上的兼容性不尽相同,这给前端开发者带来了不小的挑战。本篇文章将介绍 PWA 兼容性问题的原...

    17 天前
  • 利用技术创新为视障人群打造无障碍助行服务

    随着人们对于人文关怀的日益重视,越来越多的机构及个人投入到为视障人群提供服务的领域中。而无障碍助行作为其中一项急需得到改善的服务,也引起了人们的极大关注。本文将介绍如何利用技术创新,为视障人群打造更为...

    17 天前
  • Fastify-Medium 代理:利用 Fastify 实现文章代理功能

    作为一个前端工程师,我们经常需要浏览 Medium 等平台上的技术文章并学习新知识。但是,有时候我们可能需要在公司内部的网络环境下阅读这些文章,而访问这些网站会被网络管理员所限制。

    17 天前

相关推荐

    暂无文章