npm 包 on-demand-live-region 使用教程

阅读时长 5 分钟读完

在前端开发中,无障碍体验是需要重视的一个方面。其中,屏幕阅读器是许多视障人群非常依赖的一种工具。为了让屏幕阅读器读取内容更加方便,我们需要使用 ARIA 规范中的 aria-live 属性标记一些内容。但是,如果我们将所有内容都标记为 aria-live,那么屏幕阅读器将会持续不断地读取整个页面,这会极大地影响无障碍体验。因此,我们可以使用一个名为 on-demand-live-region 的 npm 包来解决这个问题。

什么是 on-demand-live-region

on-demand-live-region 是一个 npm 包,它可以根据需要才将某些内容标记为 aria-live,从而避免了一次性将整个页面标记为 aria-live 所带来的问题。这个包不依赖于任何其他库,可以与任何前端框架一起使用。

安装

你可以使用 npm 进行安装:

或者使用 yarn 进行安装:

用法

on-demand-live-region 提供了两个主要的函数,enableLiveRegionsdisableLiveRegions。它们分别用于开启和关闭 on-demand-live-region 功能。当开启 on-demand-live-region 功能后,你需要将要标记为 aria-live 的元素包裹在一个包含 data-live-region 属性的容器中。这个属性的值可以是 "polite""assertive",表示这个容器应该以什么样的方式被屏幕阅读器读取。例如:

当需要开启 on-demand-live-region 功能时,你可以调用 enableLiveRegions 函数并传入 document 对象作为参数。例如:

当需要关闭 on-demand-live-region 功能时,你可以调用 disableLiveRegions 函数。例如:

示例代码

以下是一个简单的示例,演示如何使用 on-demand-live-region

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

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

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

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

这个示例中,有一个按钮,点击这个按钮将在 div 元素中添加新的内容。这个 div 元素被标记为 data-live-region="polite",表示它包含了一个将要被标记为 aria-live 的容器。在页面加载完成后,我们调用了 enableLiveRegions 函数并传入 document 对象,从而开启了 on-demand-live-region 功能。当我们点击按钮并向 div 元素中添加内容时,屏幕阅读器会自动将这些内容标记为 aria-live 并读取出来。

指导意义

使用 aria-live 标记内容是一个重要的无障碍体验实践。然而,一次性将整个页面标记为 aria-live 可能会造成无障碍体验上的困扰。我们可以使用 on-demand-live-region 包来解决这个问题。通过仅在需要时才将特定的容器标记为 aria-live,我们可以确保只有必要的内容被屏幕阅读器读取。这有助于提高页面的可用性和可访问性。

同时,需要注意的是,在使用 on-demand-live-region 时,我们需要确保页面中已经加载了屏幕阅读器(例如,我们可以使用 CI 工具测试 无障碍), 否则可能会对有障碍人士造成不必要的困扰。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055ff481e8991b448ddc1f

纠错
反馈