无障碍选项卡技巧分享

阅读时长 6 分钟读完

在网站中,选项卡是一种常见的导航方式。但是,对于使用辅助技术的人来说,选项卡可能会带来一些无障碍问题。在这篇文章中,我们将介绍如何使用 CSS 和 JavaScript 创建带有“无障碍”特性的选项卡。

为什么需要无障碍选项卡?

选项卡可以帮助用户浏览和访问网站上的不同内容。但是,对于使用屏幕阅读器、放大器或其他辅助技术的人来说,选项卡可能会带来一些无障碍问题。如果选项卡没有正确的标记和结构,辅助技术可能无法识别它们,并且可能会导致用户无法访问选项卡中的内容。

因此,我们需要创建带有“无障碍”特性的选项卡,以确保所有用户都可以访问它们。

如何创建无障碍选项卡?

HTML 结构

在创建选项卡之前,我们需要考虑正确的 HTML 结构。选项卡应该使用语义化的 HTML 标记,例如 <ul><li>。每个选项卡标签都应该包含一个唯一的 ID,并且与选项卡内容的容器相对应。

以下是一个基本的 HTML 结构:

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

在上面的代码中,我们使用了 <ul><li> 标记来创建选项卡标签。每个标签都有一个唯一的 ID,并且与选项卡内容的容器相对应。我们还为每个选项卡标签添加了 role="presentation" 属性,以将其标记为选项卡标签。

每个选项卡标签中的链接使用了 role="tab" 属性,并且与选项卡内容的容器相对应。我们还为每个链接添加了 aria-controls 属性,以指示它们控制哪个选项卡内容。为了使链接与选项卡内容相关联,我们还为每个链接添加了一个唯一的 ID。

选项卡内容的容器使用了 role="tabpanel" 属性,并且与选项卡标签中的链接相对应。我们还为每个容器添加了 aria-labelledby 属性,以指示它们由哪个选项卡标签控制。

CSS 样式

接下来,我们需要添加一些 CSS 样式来创建选项卡的外观和交互。以下是一个基本的 CSS 样式:

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

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

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

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

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

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

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

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

在上面的代码中,我们为选项卡容器添加了一些基本的样式,例如边框和内边距。我们还为选项卡标签的 <ul> 元素添加了一些样式,例如去除默认列表样式和设置间距。

每个选项卡标签的链接使用了 display: block 属性,以使其占据整个选项卡标签的空间。我们还为链接添加了一些基本的样式,例如背景颜色、边框和内边距。

最后,我们使用 display: none 属性将所有选项卡内容隐藏起来。当用户点击选项卡标签时,我们将添加一个 .active 类来显示相应的选项卡内容。

JavaScript 交互

最后,我们需要添加一些 JavaScript 代码来处理选项卡的交互。以下是一个基本的 JavaScript 代码:

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

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

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

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

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

在上面的代码中,我们首先选择所有选项卡标签的链接,并为每个链接添加一个 click 事件监听器。当用户点击链接时,我们使用 preventDefault() 方法来阻止链接的默认行为。

接下来,我们获取与链接相关联的选项卡内容的容器,并将其添加一个 .active 类。我们还获取链接的 ID,并将其添加到与选项卡内容相关联的容器的 aria-labelledby 属性中。

最后,我们将删除所有选项卡标签的 .active 类,并将其添加到当前选项卡标签的父级元素中。我们还将删除所有选项卡内容的 .active 类,并将其添加到与当前选项卡标签相关联的选项卡内容容器中。

结论

使用上述 HTML、CSS 和 JavaScript 代码,我们可以创建一个带有“无障碍”特性的选项卡。这将确保所有用户都可以访问选项卡中的内容,而不管他们是否使用辅助技术。

我们希望本文能够帮助您了解如何创建无障碍选项卡,并且能够应用这些技巧来改进您的网站。如果您有任何问题或疑问,请随时在下面的评论中留言。

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

纠错
反馈