当 Drupal 7 于 2011 年发布时,它是当时最具辅助功能的开源内容管理系统 (CMS)。 我预计在 Drupal 8 发布之前,情况一直会是这样。 Web 辅助功能需要持续的警惕,并且在任何致力于满足 Web 内容辅助功能指南 (WCAG) 2.0 指南的软件中都需要始终关注。
对于许多出于法律、经济或道德原因而希望使其网站尽可能易于访问的组织来说,这非常有用。
Drupal 与大多数其他 CMS 的不同之处在于,它的重点是提高 Drupal Core 在所有级别(公共、内容编辑器、管理员和开发人员)的辅助功能。 修复 Core 中的问题允许我们从源头修复辅助功能问题,并且它们默认传播到使用的主题和模块。
添加更多语义
最大的辅助功能增强是以 HTML5 和 WAI-ARIA 形式存在的附加语义。 如果使用得当,两者都会增加上下文,这对于使用辅助技术的用户来说很有用。 我们添加了 ARIA 地标和角色。 现在还有一种中心方法可以利用 aria-live,以便在页面上的动态内容更新而无需重新加载页面时,可以提醒屏幕阅读器。
Drupal 7 表单中的一个常见问题是,多部分复选框和单选按钮没有正确地包含在 <fieldset> 元素中。 在 Drupal 8 中,这已被引入到 Forms API 中,以便这些元素可以正确地分组在一起。
Drupal 以其强大的国际化而闻名,但创建可访问的多语言站点是一个真正的挑战! 幸运的是,Drupal 8 在为其扩展的语言支持添加语义方面做了很多工作。
积少成多
对字体大小和颜色对比度进行了许多小的更改,以确保 Drupal 8 主题符合 WCAG 2.0 AA 指南。
许多用户界面中的一个巨大挑战是确保仅从链接文本即可确定每个链接的用途。 在页面上的空间有限的情况下,对于许多 CMS 来说,很难实现这一点。 Drupal 在 Drupal 7 中为某些内容默认添加了此功能,但在 Drupal 8 中进一步扩展了此功能,并且我们正在利用一组常用的视觉隐藏 CSS 类。
整合
有一个倡议是寻找其他开源代码以在 Drupal 中采用。 这被称为“自豪地在其他地方发明”,它对 Drupal 8 的辅助功能和其他项目的辅助功能产生了重大影响。 Drupal 社区推动 jQuery UI 和 CKEditor 改进其辅助功能,然后才采用其代码。
在 Drupal 7 中,我们决定集中处理诸如我们如何解决 CSS display:none; 的可访问替代方案之类的功能。 大约在同一时间,流行的 HTML5 样板也做了同样的事情。 在 Drupal 8 中,我们选择将我们的 CSS 类重命名为更常用的“visually-hidden”,以便已经熟悉该约定的主题制作者更容易使用。
Drupal 8 的另一个重大增强是集中的选项卡管理器。 网站变得越来越复杂,对于仅使用键盘的用户而言,需要有一种方法来堆叠选项卡顺序来管理它。 我们正在后端使用它,但它将可用于所有希望能够确保选项卡顺序符合逻辑的模块和主题。
创作工具
重要的是要记住,可能患有残疾的不仅仅是我们的用户。 尤其是在人口老龄化的时代,辅助功能是组织中各级人员都关心的问题。 Drupal 致力于消除管理级别的辅助功能挑战非常重要。 这也使该 CMS 能够很好地解决新的辅助功能标准——创作工具辅助功能指南 (ATAG)。 ATAG 主要关于帮助内容作者制作更易于访问的内容。
我们在 Drupal 8 中做了一些简单的事情来帮助我们符合 ATAG。 管理员现在可以强制图像上传包含替代文本。 我们还在默认过滤器中打开了 HTML 标题,以鼓励编辑创建更结构化的内容。 但最终,主要是因为 Drupal 的结构方式,我们能够帮助作者使用此界面制作更易于访问的内容。
视图!
Drupal 8 最大的胜利之一是将 Views 引入了 Core。 Views 是 Drupal 7 中最流行和最强大的贡献模块,因此很高兴看到它被纳入 Drupal 8 中。 对于 Drupal 管理员和最终用户来说,这都是辅助功能的重大胜利。 Views UI 已经过清理,使其更具语义性,但我们也为表格视图添加了辅助功能改进。 表格现在支持 HTML5 的标题和描述元素,以及每个单元格都有正确的 id/header 语义。
现在,仍然需要做更多的工作,并且希望能在 Drupal 8 的首次发布之前进入 Core,但即便如此,它现在也远远领先于最接近的竞争对手。 因为 Drupal 是模块化的,所以构建在新 API 上的模块和主题将继承我们构建到 Core 中的许多最佳实践。 请记住,任何这些扩展都可能覆盖最佳实践,因此仍需要改进 Drupal 8 社区贡献的辅助功能。 但是社区标准是在 Core 中设置的,大多数模块都会遵循它们。
开始尝试 Drupal 8
如果您热衷于辅助功能并想尝试 Drupal 8,一个简单的起点是 http://simplytest.me/project/drupal/8.x ,您也可以使用它来测试 Drupal 8 在 http://drupal.org 上贡献的任何模块。
现在有很多很棒的方法可以开始试验 Drupal 8 并为其做出贡献。 Drupal 社区所做的事情仍然非常独特,但其他开源项目肯定可以从中学习和采用。
3 条评论