Is it accessible to wrap a whole #39;card#39; in an lt;agt; tag?(是否可以将整张卡片包装在lt;agt;标签中?)
问题描述
在我的网站上有"卡片",每一张都有很多元素(图像、文本、日期等)。有点像推特里的推特卡片:
我希望整个卡片都是可点击的(应该是指向另一个页面的链接)。
目前,我将顶层元素作为<a>
标记,并使用aria-label
和aria-describedby
,因此屏幕阅读器可以正确读取它。
<a
href="/some-url"
aria-label="Honda VFR. Price: $10,000. Kilometers: 10,000. Listed yesterday."
aria-describedby="description-1"
>
<img src="aHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9kL2Q5LzE5ODNfSG9uZGFfSW50ZXJjZXB0b3JfVkY3NTBGLmpwZy8zMDBweC0xOTgzX0hvbmRhX0ludGVyY2VwdG9yX1ZGNzUwRi5qcGc=" alt="SG9uZGEgVkZSIHBpY3R1cmU=" height="100" />
<p>Honda VFR</p>
<div>
<p>$10,000</p>
<p>Kms: 10,000</p>
<p>Date listed: yesterday</p>
<p id="description-1">This bike is pretty great and a lot of other details go here</p>
</div>
</a>
我考虑过做aria-labelledby="title-id-1 price-id-1 distance-id-1"
,但我发现显式创建一个总结句读起来更好。
我依赖于这样一个事实,即屏幕阅读器将忽略<a>
标记内的所有内容(如果我有aria-label
)。这是安全的赌注吗?
这一切似乎有点奇怪,但是我想知道是否有什么特别的原因使我不应该这样做。
遗憾的是,设计规定整个卡片都是可点击的,因此不能只创建特定部分的链接。
另一个选项是使用div,aria roles like this和JavaScript,这感觉像是朝着错误的方向迈出了一步。
非常感谢您的帮助。
jsbin:https://output.jsbin.com/kusawu
推荐答案
是否可以将整个"卡片"包装在标签中?
"可访问性"是一个空泛的概念。
例如,如果您视力低下,使用屏幕阅读器帮助您阅读"卡片"内的文本。使用aria-label
可能会阻止屏幕阅读器阅读您可以部分阅读的内容。这意味着:你知道有一个内容,你可以很好地阅读它,但你的屏幕阅读器读到的是另一种不同的东西。
这就是说,在您的示例中,它似乎提高了可访问性:用户可以访问相同的内容,但使用的是通俗易懂的英语,这是可以理解的。
所以我认为这不是问题。
这篇关于是否可以将整张卡片包装在<;a>;标签中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:是否可以将整张卡片包装在<;a>;标签中?


- addEventListener 在 IE 11 中不起作用 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 400或500级别的HTTP响应 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01