无障碍辅助技术之 WCAG 2.1 指南梳理

介绍

随着互联网的普及和发展,我们越来越多地依赖于电子设备来获取信息和交流。但是对于视觉、听力、操作等方面存在障碍的人群,使用电子设备可能是困难甚至无法完成的任务。为了让网站、应用和设备能够服务于更多的人群,无障碍辅助技术变得愈发重要。

WCAG(Web Content Accessibility Guidelines)是一个用来指导网站制作者、开发者、设计师等人员如何创建无障碍内容的指南。WCAG 2.1 是目前最权威的版本,它在原有的 2.0 版本的基础上新增了一些条款和建议,包括对移动应用、响应式设计和语义性的更多细节方面的要求。

本篇文章将介绍 WCAG 2.1 中的主要指南,并提供一些相关的示例代码,帮助读者理解和实践这些指南。

指南一:适用性原则

适用性原则指导了我们创作无障碍内容的基本原则,并重点强调了在什么情况下必须遵守无障碍指南。它被分为以下四个原则:

  1. Perceivable(可感知性):用户必须能够感知到页面中的所有信息和功能。例如,提供文字描述(alt)以支持图像、表格以支持数据呈现等。

  2. Operable(可操作性):用户必须能够使用不同的输入设备完成任务。例如,键盘操作、手势操作、语音控制等。

  3. Understandable(可理解性):页面的信息和操作必须是容易理解的。例如,提供易于理解的语言、使用简单的布局和元素等。

  4. Robust(稳健性):页面必须是稳健的,能够在不同的环境和设备中呈现。例如,使用规范的 HTML、CSS 代码、添加元数据等。

指南二到四它们分别详细描述了这四个原则。

指南二:感知性原则

感知性原则包括三条指南,以确保用户可以感知页面中的所有信息和功能。

指南 2.1:提供替代内容

这个指南要求开发人员为所有非文本内容提供文本或其他可访问的替代内容,以便于用户可以感知到页面上的所有信息。常见的非文本内容包括图像、音频、视频等等。

对于图像的替代内容,可以使用 alt 属性来进行描述,如下例所示:

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

对于视频、音频等媒体文件,可以使用 track 元素提供字幕和注释等替代形式,如下例所示:

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

指南 2.2:提供时间留给用户

这个指南要求开发人员确保用户可以掌握页面中的所有信息,并有足够的时间来完成相关任务。例如,在播放音频或视频时,允许用户暂停或重播,或者允许用户手动控制轮播图的速度。

指南 2.3:创建易于识别的内容

这个指南要求开发人员确保信息和功能易于识别,例如通过颜色(如:使用对比度)、区块组合、排版等等

指南三:操作性原则

操作性原则包括四条指南,以确保用户可以使用不同的输入设备完成任务。

指南 3.1:确保所有功能可以进行键盘操作

这个指南要求开发人员确保用户可以通过键盘和其他输入设备(如轮椅等)完成所有操作。这也意味着开发人员应该避免使用鼠标或其他仅仅面向某几类用户的输入设备。

指南 3.2:提供足够容易理解的界面

这个指南要求开发人员确保界面是简洁、清晰易懂的,所以页面中不建议过多过杂的元素干扰用户。

指南 3.3:允许用户避免操作错误

这个指南要求开发人员充分考虑到不同用户对于页面使用的不同,以减少用户犯错的可能性,以提高用户体验和满意度。

指南 3.4:供应清晰的指示

这个指南要求开发人员提供清晰明了的内容和指引,以便用户更好地理解页面和使用功能。例如,提供有意义的标签等等。

指南四:理解性原则

理解性原则包括三条指南,以确保页面的信息和操作易于理解。

指南 4.1:使语言易于理解

这个指南要求开发人员必须使用明确简单易懂的语言,特别是针对不同的用户,可以使用多语言而不是过于显式的技术语言。

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

指南 4.2:提供可用的操作指南

这个指南要求开发人员在页面中提供提示和指南,以便用户更好地理解操作方式或知道该如何继续,例如,提示环节的跳转。

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

指南 4.3:确保易于理解的内容呈现

这个指南要求开发人员在页面中使用简单明了的布局和内容呈现,以便用户更好地理解页面内容。

总结

WCAG 2.1 指南有助于开发人员创建更加友好的界面和系统,以便不同类型、不同背景的用户都可以更方便地使用网站和应用程序。希望本文对开发人员有所启示,能够在今后的开发中更加注意无障碍原则。

示例代码

以下是关于某些指南的一些示例代码,希望可以有所帮助:

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

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

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

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

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

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

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


猜你喜欢

  • SASS 中使用 map 和 list 存储数据的实践

    SASS 是一种基于 CSS 的预处理器,它能够扩展 CSS 的基本功能,让开发者能够更加便捷地管理样式代码。其中,SASS 中提供了两种数据类型:map 和 list,它们可以用来存储数据,实现动态...

    1 年前
  • ES11 (2020) 中的 globalThis:如何解决 web 工作器和 iframe 中的全局对象问题?

    在前端开发中,我们经常会遇到需要在不同的上下文中操作全局对象的情况,如在 Web Worker 或 iframe 中进行操作。然而,在不同的上下文中,全局对象的实际名称可能会有所不同,这就导致了一些烦...

    1 年前
  • PM2 如何支持 Node.js 的多核 CPU 调度

    当我们使用 Node.js 在生产环境下开发应用时,我们需要考虑如何充分利用服务器硬件资源,特别是多核 CPU。本文将介绍如何使用 PM2 工具进行 Node.js 应用程序的多核 CPU 调度,从而...

    1 年前
  • PWA 应用中如何实现 IOS 和安卓设备上的统一打开形式?

    背景 PWA(Progressive Web Apps)是一种新型的应用程序类型,可以通过 Web 技术构建出行为与原生应用程序相似的应用。在使用 PWA 应用程序时,网页打开行为与原生应用程序相同,...

    1 年前
  • 如何运用 ES10 的 Promise.allSettled 方法实现多接口并发请求

    在前端开发中,经常需要同时请求多个接口,并在这些接口都返回后才能对数据进行处理和展示。在过去,我们往往使用 Promise.all 方法来实现多接口的并发请求,但是一旦其中某一个接口请求失败,整个请求...

    1 年前
  • Socket.io实现后端推送服务和前端自动刷新的方案

    前言 在 Web 开发中,前端自动刷新是非常必要和常用的功能。使用传统的轮询方式往往会导致服务器负载增加和数据不准确等问题。而使用 Socket.io 技术可以实现后端数据推送到前端,从而实现前端实时...

    1 年前
  • Node.js 中的 SSE 消息事件处理

    Node.js 中的 SSE 消息事件处理 在今天的互联网应用中,前端开发领域可以说是创新变化最快的领域之一。前端开发工程师需要时刻关注新的技术、新的工具和新的编程思想。

    1 年前
  • Cypress 测试如何进行界面样式校验

    Cypress 是一个流行的前端自动化测试工具,其优秀的 API 和易用性在测试领域备受欢迎。它支持我们对于应用程序的功能进行测试,同时还可以对 UI 进行测试,其中一项重要的 UI 测试是界面样式校...

    1 年前
  • Mongoose:如何实现数据库连接池

    Mongoose 是一个开源的 MongoDB 驱动程序,使得在 Node.js 应用程序中使用 MongoDB 成为可能。使用 Mongoose,Node.js 开发人员可以轻松地使用对象映射来访问...

    1 年前
  • 如何在 Hapi 框架中进行 HTTPS 配置

    随着网络安全问题的日益严重,越来越多的网站开始采用 HTTPS 协议进行加密传输,保证数据的安全。在 Node.js 的后端开发中,利用 Hapi 框架进行 HTTPS 配置是一个非常重要的工作。

    1 年前
  • ES12 中的一些新的数字函数:clamp、scale、remap

    ES12(也叫 ES2021)是 JavaScript 的新版本,它引入了许多新的语言特性和 API。本文将重点介绍其中的一些新的数字函数:clamp、scale、remap。

    1 年前
  • 全面解析 Howler.js v2.0.12、ES7 及其 Soundcloud-API 构建音频播放器

    音频播放器是前端开发中常见的需求之一,如何快速搭建一个好用的音频播放器,成为了许多前端开发者必须要解决的问题。在本文中,我们将介绍如何使用 Howler.js v2.0.12、ES7 及其 Sound...

    1 年前
  • Deno 发生错误时的处理方式

    什么是 Deno? Deno 是一种新型的运行时,用于 JavaScript 和 TypeScript。它在很多方面类似于 Node.js,但也有一些不同之处。 Deno 是执行 V8 引擎和 Rus...

    1 年前
  • 实时推送:使用 GraphQL Subscriptions 在 React Native 中进行实时通知

    随着移动应用的普及,用户对实时通知的需求也越来越高,例如即时消息、新消息提醒等等。在前端开发中,实现实时推送是一项重要的功能。本文将介绍如何使用 GraphQL Subscriptions 在 Rea...

    1 年前
  • ECMAScript 2018 中递归解构嵌套数组的方法

    在 ECMAScript 2018 中,有一个非常实用的功能是递归解构嵌套数组。这个功能可以让前端开发者更加高效地操作数据,并简化代码。 语法 递归解构嵌套数组的语法非常简单,只需要在解构数组的过程中...

    1 年前
  • 在 Vue.js 项目中使用 Tailwind CSS 的遇到的问题及解决办法

    背景 Tailwind CSS 是一个快速、高效的 CSS 框架,它采用了一种新的方法来写 CSS,通过在 HTML 中使用类名来表示样式,避免了传统 CSS 中的样式冗余问题,提升了开发效率。

    1 年前
  • 如何使用 Polymer 实现 Custom Elements

    在前端开发中,Custom Elements 可以让我们自定义标签,从而实现更加模块化和可复用的代码。Polymer 是一个优秀的 Web 组件库,它提供了一些便利的 API 和工具,可以帮助我们实现...

    1 年前
  • Webpack 优化实践:拆分 css 模块,提升首屏速度

    Webpack 是前端开发中不可或缺的构建工具,它可以将各种资源打包为最终的静态文件,包括 JavaScript,CSS,图片等。然而随着项目的增长,Webpack 打包的速度越来越慢,首屏速度越来越...

    1 年前
  • AngularJS 打造单页应用中的后端接口调用方式

    在前端开发现代化应用时,单页应用已经成为一种常见的模式。因此,如何设计和实现后端接口调用方式已经成为前端工程师日常工作中不可或缺的重要一环。AngularJS 是一个非常流行的前端框架,它提供了许多实...

    1 年前
  • ES11 (2020) 中的装饰器:如何利用其增强对象的功能?

    随着前端开发技术的不断发展,JavaScript 也一直在不断更新迭代。在 ES6 中,我们看到了箭头函数、解构赋值等新特性的出现,而在 ES11 中,也有一项非常重要的特性,那就是装饰器。

    1 年前

相关推荐

    暂无文章