【发布时间】:2020-10-07 05:22:22
【问题描述】:
上下文:
我们有一些卡片是单选按钮组中的单选按钮,我们希望以不同的顺序显示大小断点。我想知道是否有一种方法可以很好地做到这一点,它不涉及为不同的断点复制 html,并且不会破坏可访问性。
所需的大断点:
|Large|Medium|Small|
想要的小断点:
|Small|
|Medium|
|Large|
所需的可访问性行为:
对于单选组,您通常希望点击 tab 以访问单选组中的第一个选项,然后使用箭头键选择不同的选项。
我的尝试:
我尝试使用display:flex 并将flex-direction 更改为row 或column-reverse,具体取决于断点。然后因为 flex 只是可视的,我还把tabindex 放在无线电输入上。虽然它修复了选项卡行为,但箭头键与您期望的相反。
超级削减示例:
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<p>Standard view:</p>
<div style="display:flex;">
<div>
<input type="radio" id="featured" name="tier2" value="featured" tabindex="1">
<label for="featured">Featured</label><br>
</div>
<div>
<input type="radio" id="standard" name="tier2" value="standard" tabindex="2">
<label for="standard">Standard</label><br>
</div>
<div>
<input type="radio" id="basic" name="tier2" value="basic" tabindex="3">
<label for="basic">Basic</label>
</div>
</div>
<p>Mobile view:</p>
<div style="display:flex; flex-direction:column-reverse">
<div>
<input type="radio" id="featured" name="tier" value="featured" tabindex="3">
<label for="featured">Featured</label><br>
</div>
<div>
<input type="radio" id="standard" name="tier" value="standard" tabindex="2">
<label for="standard">Standard</label><br>
</div>
<div>
<input type="radio" id="basic" name="tier" value="basic" tabindex="1">
<label for="basic">Basic</label>
</div>
</div>
</body>
</html>
问题:
- 是否有其他属性(如
tabindex)可用于定义箭头键的工作顺序? - 还有其他不涉及复制 html 的方法吗?
谢谢!
【问题讨论】:
标签: html css flexbox accessibility