0

0

HTML中如何正确使用aria-current?

煙雲

煙雲

发布时间:2025-07-18 18:29:01

|

382人浏览过

|

来源于php中文网

原创

aria-current用于指示一组相关元素中当前活跃或被选中的元素,其核心价值在于提升网页可访问性。1. 它适用于导航链接、分页组件、多步骤表单进度指示器、面包屑、日历和时间选择器等场景;2. 具体值如page用于当前页面,step用于流程步骤,location用于位置导航,date和time分别表示日期和时间,true为通用回退值;3. 使用时需配合css样式以实现视觉反馈,但不应与焦点或选中状态混淆,且应避免过度使用。

HTML中如何正确使用aria-current?

aria-current在HTML中,简单来说,它就像是给屏幕阅读器和辅助技术的一个小标签,告诉它们:“嘿,这个元素是当前活跃的、被选中的,或者在某个序列中是焦点所在的那一个。” 它不是用来改变视觉样式的,而是提供语义信息,让那些看不到页面布局的用户也能理解当前的状态。比如,在一个导航菜单里,它能明确指出你现在正位于哪个页面;在分页组件中,它指明了当前是第几页。它的核心价值在于提升可访问性,确保所有用户都能无障碍地理解网页内容。

HTML中如何正确使用aria-current?

解决方案

正确使用aria-current,关键在于理解其语义以及它所适用的上下文。这个属性用于指示一组相关元素中当前处于活动状态或被选中的元素。它有几种预定义的值,每种值都对应一个特定的语义场景,当然,你也可以使用true作为一个通用的表示。

首先,要明确aria-current的适用范围:它最常用于导航链接、面包屑、分页组件、多步骤表单(向导)的进度指示器,以及日历或时间选择器中。它的作用是让辅助技术用户清楚地知道“我在这里”,或者“这是我正在查看的内容”。

立即学习前端免费学习笔记(深入)”;

HTML中如何正确使用aria-current?

具体来说,这些值和它们的典型应用是这样的:

  • aria-current="page": 这是最常见的用法,用于指示当前页面在网站导航中的位置。比如,在一个主导航菜单中,当用户访问“关于我们”页面时,该页面的导航链接就应该加上aria-current="page"

    HTML中如何正确使用aria-current?

    在分页组件中,当前页码也应使用此值。

  • aria-current="step": 用于指示多步骤流程中的当前步骤。比如,在购物车结账流程中,当前用户所在的步骤。

    1. 购物车
    2. 配送信息
    3. 支付
    4. 确认订单
  • aria-current="location": 用于指示用户在分层结构中的当前位置,最典型的就是面包屑导航。

  • aria-current="date": 用于指示日历中当前选定的日期。

    25 
  • aria-current="time": 用于指示时间轴或调度器中当前选定的时间。

  • 14:00 - 15:00 会议
  • aria-current="true": 作为一个通用的回退值,当上述任何特定语义都不适用,但确实需要标记一个元素为“当前”时使用。不过,通常建议优先使用更具体的语义值。例如,如果一个自定义组件中有一个“当前”状态,但它不属于页面、步骤、位置等任何一种,就可以考虑使用true

记住,aria-current是给辅助技术提供额外上下文的,它本身不会改变元素的视觉表现。视觉样式需要通过CSS来配合完成。

aria-current与CSS样式如何协同工作?

这其实是个很棒的问题,因为很多人一开始会混淆语义和样式。aria-current,它本质上是一个HTML属性,一个纯粹的语义标记。它不带任何预设的视觉效果,就像你给一个盒子贴上“易碎品”的标签,这个标签本身不会让盒子变得易碎,但它告诉搬运工要小心处理。

所以,当你在HTML元素上设置了aria-current,比如关于我们,这个aria-current="page"并不会让“关于我们”这个链接自动变粗或变色。它仅仅是告诉屏幕阅读器:“嘿,这个链接代表的是当前用户所在的页面。”

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版
动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包

下载

要让这个语义信息在视觉上也体现出来,我们就需要借助CSS。CSS可以通过属性选择器来精准地选中带有aria-current属性的元素,并为其应用样式。

比如,你想让当前页面的链接在视觉上更突出,你可以这样写CSS:

/* 针对当前页面的链接,加粗并改变颜色 */
[aria-current="page"] {
  font-weight: bold;
  color: #007bff; /* 蓝色 */
  text-decoration: underline; /* 增加下划线,进一步强调 */
}

/* 针对当前步骤的列表项,可以给它一个背景色 */
[aria-current="step"] {
  background-color: #e6f7ff; /* 淡蓝色背景 */
  padding: 5px 10px;
  border-radius: 4px;
}

/* 针对面包屑中的当前位置 */
[aria-current="location"] {
  color: #333; /* 深灰色 */
  font-style: italic; /* 斜体 */
  /* 可能还会配合伪元素来移除链接样式,因为它是当前位置,通常不再是可点击的链接 */
  pointer-events: none; /* 禁用点击事件 */
  cursor: default; /* 改变鼠标样式 */
}

这种协同工作的方式非常符合前端开发的最佳实践:HTML负责结构和语义,CSS负责表现和样式。aria-current提供了那个语义上的“钩子”,让你的样式能够基于有意义的状态进行应用,而不是仅仅基于类名(虽然类名也可以,但aria-current直接表达了辅助功能相关的语义)。这样,无论用户是否依赖视觉,他们都能获取到相同的“当前”状态信息。

什么时候不应该使用aria-current

虽然aria-current是个好东西,但并不是所有“活跃”或“选中”的状态都需要它。过度使用或错误使用反而可能造成混淆,甚至降低可访问性。

一个常见的误区是把它和一般的“选中”(selected)状态混淆。比如,在一个多选列表框里,你选择了几项,这些项通常应该使用aria-selected="true",而不是aria-currentaria-current强调的是“当前在看”、“当前所在”或“当前进行到哪一步”的概念,它是一个集合中独一无二的“现在”的位置。而aria-selected则表示在可选项中,哪些是被用户选中的。这两者语义不同。

再比如,当一个元素只是获得了焦点(focus)或者鼠标悬停(hover)时,也不应该使用aria-current。这些是短暂的交互状态,不是指在某个序列或集合中的“当前”位置。浏览器和辅助技术已经有内置的方式来处理焦点和悬停状态。

还有一种情况,如果一个元素的状态已经通过原生的HTML语义或其他更合适的ARIA属性表达得很清楚了,那么就没有必要再画蛇添足地加上aria-current。例如,一个details元素的open属性已经明确了它当前是展开状态,你不需要再用aria-current来重复这个信息。

简单来说,如果你的场景不符合“在一个相关元素的集合中,有一个且只有一个是当前活跃/被访问/被关注的那个”这个核心概念,那么就不要使用aria-current。它不是一个万能的“活跃”状态标记,而是专门为特定类型的“当前”状态设计的。

aria-current的不同值有哪些具体应用场景?

aria-current的每个值都带有特定的语义,这让它在不同的场景下能够更精确地传达信息。理解这些具体应用场景,能帮助我们更恰当地使用它们。

  • aria-current="page":

    • 网站主导航: 这是最经典的用法。当用户访问网站的某个页面时,导航菜单中指向该页面的链接就应该加上aria-current="page"。比如,你在“产品”页面,那么导航栏里的“产品”链接就应该有这个属性。这让屏幕阅读器用户知道他们当前在哪个页面,而不是仅仅听到一堆链接。
    • 分页导航: 在博客、电商列表等需要分页的页面中,当前显示的页码链接应该使用aria-current="page"。例如,你在看第5页,那么页码“5”的链接就应该标记。
  • aria-current="step":

    • 多步骤表单/向导: 比如在线购物的结账流程(购物车 -> 配送信息 -> 支付 -> 确认订单)。当用户在“配送信息”这一步时,对应的步骤指示器(通常是列表项或按钮)就应该标记为aria-current="step"。这对于辅助技术用户理解自己在流程中的位置至关重要。
    • 安装向导: 软件或系统安装过程中的步骤提示,同样适用。
  • aria-current="location":

    • 面包屑导航: 这是它的主要应用场景。面包屑显示了用户在网站层级结构中的路径。最后一个,也就是用户当前所在的层级,就应该使用aria-current="location"。例如,“首页 > 产品 > 电子产品 > 手机”,这里的“手机”就是当前位置。它通常不再是可点击的链接,因为它已经代表了用户当前的位置。
  • aria-current="date":

    • 日历组件: 当你在一个日历界面中,标记“今天”的日期单元格时,就可以使用aria-current="date"。这让辅助技术用户能够快速定位到当前日期。
    • 预订系统: 在选择日期时,如果有一个“当前选择日期”的概念,也可以考虑使用。
  • aria-current="time":

    • 日程表/时间轴: 在显示日程或时间轴的组件中,如果有一个时间段或时间点是当前正在进行的或者被选中的,可以使用aria-current="time"。例如,在一个会议日程表中,当前正在进行的会议时间段。
  • aria-current="true":

    • 通用回退: 当上述特定值都不太适用,但你确实需要表示一个元素是某个集合中的“当前”项时,可以使用true。它是一个通用的布尔值。不过,通常更推荐使用语义更明确的值。举个例子,如果一个自定义的图片轮播组件,你希望指示当前显示的图片,但它不完全是“页面”或“步骤”,这时true可能是一个选项。但很多时候,aria-selected可能更适合轮播图的导航点。因此,使用true时需要仔细权衡,确保没有更合适的语义属性。

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

397

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

location.assign
location.assign

在前端开发中,我们经常需要使用JavaScript来控制页面的跳转和数据的传递。location.assign就是JavaScript中常用的一个跳转方法。通过location.assign,我们可以在当前窗口或者iframe中加载一个新的URL地址,并且可以保存旧页面的历史记录。php中文网为大家带来了location.assign的相关知识、以及相关文章等内容,供大家免费下载使用。

226

2023.06.27

clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

19

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

16

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

567

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

209

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

350

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 24.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号