- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图找到语义上正确的方式来描述代表获取帮助(例如帮助图标)及其帮助内容的方式的 HTML 元素。我试图搜索此主题,但在帮助中搜索帮助并非易事。这是我的想法的一个简单示例(使用一个简单的脚本来显示/隐藏帮助内容以及利用“title”属性):
<div>
Please enter your password
<a class="help" title="Your password must have 5 characters">
<img src="/images/help.svg" alt="">
</a>
<span class="helpText displayNone">
Your password must have 5 characters.
</span>
<input type="password>
</div>
有没有更好的方式来表示这个(以这种格式)。这个想法是用一种可访问且 SEO 友好的方式来描述“可切换的帮助内容”。
问题是关于 HTML/HTML5 和 WAI-ARIA 属性(不是 JavaScript)——我正在寻找我的示例的最佳元素表示(如果这样的概念存在)。
最佳答案
根据您的标记,我认为这个问题比您预期的要大。首先让我们清理您的示例,以便有适当的语义和结构元素,也使用户可以访问它:
<div>
<label for="pwd">Please enter your password</label>
<input type="password" id="pwd">
</div>
这构成了一个可访问的字段。没有脚本,没有 ARIA。只是一个<label>
与该字段正确关联。
现在您想为用户提供一些帮助,但仍将其与该字段相关联。
首先,不要使用 anchor 。这告诉辅助技术的用户,它将把他们带离页面,他们可能不想单击或激活控件。使用 <button>
.
然后您可以使用 ARIA 将该提示与字段相关联。在这种情况下 aria-describedby
将与现场一起公布。
您还需要填写 alt
属性,否则您的图像根本不会向屏幕阅读器用户公布。
在此上下文中使用的最佳 ARIA 角色是 role=tooltip
(read more in the ARIA spec)。
这是您可以采用的一种方法:
<div>
<label for="pwd">Please enter your password</label>
<button><img src="/images/help.svg" alt="Help"></button>
<span id="pwd-tip" role="tooltip">Your password must have 5 characters.</span>
<input type="password" id="pwd" aria-describedby="pwd-tip">
</div>
如果必须避免使用脚本,您可以使用 CSS 来确定按钮是否具有焦点并显示以下同级范围 (button:focus + span
),但那样很草率。您可以使用脚本在 button
上切换一个类它使用类似的 CSS 来显示 span
.
您可以将文本放入<label>
并使用 CSS 屏幕外技术隐藏它,这意味着它将始终向屏幕阅读器宣布,然后您可以转储 aria-describedby
.
坦率地说,您可以通过几种不同的方式为它设置外观。在 ARIA Practices description for a tooltip 查看您必须考虑的键盘交互.
但是,在大多数情况下,最好让帮助文本始终可见(尤其是如果您想满足 SEO 的模糊概念)。在真空中,我会把这段文字放在 <label>
中并完成它。
关于html - HTML5 和 WAI-ARIA 中是否有语义方式来描述 "Toggleable Help Content"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41783569/
我正在尝试提升我的 javascript 编程技能(或者说我的编程技能时期 :)) 所以我试图理解一些语义: 第一行的“?”是什么意思?均值和“-distance”中的减号 第二行中的“+=”或“-=
我正在尝试在语义 UI 中执行复选框,但它不起作用,我无法弄清楚我做错了什么。 我包括jquery、semantic.min.js、checkbox.js 和semantic.min.css,然后我添
我正在构建一个 Spring 后端。我有一个 Controller ,它获取一个“搜索对象” - 一个具有 10 个字段的对象,其中只有一个应该被填充,所以搜索功能(我没有编写,但需要对其进行更改和重
我面临着编写更智能/高级的“相关内容”算法的挑战,并且不知道从哪里开始,所以我决定提出一个问题,是否有人会指出我正确的方向。 我们的数据库包含很多文章,到目前为止,我们使用关键字/标签查询了相关文章,
我正在尝试将通用字符串写入Rust中的数字函数,其中支持的类型为i16,i32,i64,u32,u64,f32和f64。 最初我有这个: fn str_to_num(s: &str, default_
假设我们在 hpp 文件中有一个带有唯一指针的简单结构: struct SomeType { SomeType() = default; ~SomeType(); st
这是同一预处理指令的多个问题。 1 - <> 还是 ""? 除了在 MSDN 中找到的信息: #include Directive (C-C++) 1.a:这两种符号有什么区别? 1.b:所有编译器都
所以基本上我有一个带有列表的简单系统,当我选择一个项目时,它会显示描述和绑定(bind)到该项目的图像。 项目:https://jsfiddle.net/jhnjcddh/2/ 问题是我需要在 JS
很抱歉问了一个愚蠢的问题,但有人能告诉我以下是什么意思吗 for ctype, (codename, name) in searched_perms: 我不明白括号里是怎么回事。 for ctype
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Why do all these crazy function pointer definitions al
我正在学习 HTML5,并获得了一个将 CSS Zen Gardens 转换为 HTML5 语义版本的项目。我已经能够轻松地转换其中的大部分内容,但是底部的链接/导航给我带来了一些问题。 转换此/处理
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improv
我一直在我的 emacs c/c++ 开发设置中试验 cedet 和语义,除了一个小细节外,我对它非常满意。 我使用 ede-cpp-root-project 创建一个项目,并给出我的项目的根目录以及
引用问题自http://www.garfieldtech.com/blog/put-up-with-put (这是针对 Drupal 开源项目的,有点元,因为这里没有代码): GET、HEAD 和 P
我有以下代码。 let v_blue = UIView() v_blue.backgroundColor = UIColor.blueColor() l
我目前正在 objc.io 上阅读优秀的 Advanced Swift 书籍,但遇到了一些我不明白的问题。 如果您在操场上运行以下代码,您会注意到在修改字典中包含的结构时,下标访问会生成一个副本,但随
谁能给我一个关于 Flutter 上下文中语义概念的清晰解释(或链接)(它实际上是什么,何时使用,更新...)? 我在谷歌上搜索了很多,但到目前为止还没有找到任何好的解释。 非常感谢, 最佳答案 Di
这是我的代码 Was this what you wanted? It's good to see you again.
我有一个侧边栏,其中包含应用程序的主导航。它还包含一个 button 触发侧边栏的打开/关闭。在语义方面,标记应该是什么样的? 我应该把侧边栏放在一边,然后只在周围设置导航吗主导航,不包括打开/关闭触
考虑下面这行 Lisp 代码: (some-function 7 8 | 9) ;; some comment. note the extra indentation 该点位于“8”和
我是一名优秀的程序员,十分优秀!