html - 使用标签和单选按钮作为 CSS 钩子(Hook)是否适合 HTML?

标签 html css input label accessibility

对于 CSS,<label /> 的组合和 <input type="radio" />是一种祝福 - 它允许通过 DOM 命令返回元素,而不需要 javascript,具有各种有用的应用程序。示例:

<style>
#wrapper {width:300px; height:200px; text-align:center;}
.slide {position:relative; width:300px; height:200px; line-height:200px; border:1px solid black; font-size:3em; color:crimson;}
input {display:none;}
input[name="ito"] + .slide {display:none;}
input[name="ito"]:checked + .slide {display:block;}
.slide label {position:absolute; top:0; color:black;}
.slide label:first-of-type {left:0;}
.slide label:last-of-type {right:0;}
#is:checked ~ [for="is"], #this:checked ~ [for="this"], #ok:checked ~ [for="ok"] {color:crimson;}
</style>

<div id="wrapper">
    <input name="ito" type="radio" id="is" checked>
  <div class="slide">IS
    <label for="ok">«</label><label for="this">»</label>
  </div>
    <input name="ito" type="radio" id="this">
  <div class="slide">THIS
    <label for="is">«</label><label for="ok">»</label>
  </div>
    <input name="ito" type="radio" id="ok">
  <div class="slide">OK?
    <label for="this">«</label><label for="is">»</label>
  </div>
    <label for="is">1</label><label for="this">2</label><label for="ok">3</label>
</div>

https://jsfiddle.net/v6eeqxog/

代码在技术上是有效的 https://html5.validator.nu , 但如何正确使用它?

我的意思是,代码中存在一些明显的困惑程度,但除此之外 - 这是否适合可访问性或其他此类问题?

最佳答案

这似乎无法通过键盘访问。您不能聚焦单选按钮(使用 Tab 键)来切换“幻灯片”(使用箭头键)。它没有这个 CSS 也能工作,因为这样你就可以聚焦单选按钮。

参见 WCAG 2.0 准则 2.1:Keyboard Accessible: Make all functionality available from a keyboard.

关于html - 使用标签和单选按钮作为 CSS 钩子(Hook)是否适合 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937229/

相关文章:

css - 覆盖 CSS 的正确方法

javascript - 当文本从输入中完全删除时执行某些操作

Python 3.2 输入日期函数

jquery - 在jquery中按下div时模拟输入按下

python - BeautifulSoup 返回意外的额外空间

javascript - 将 FileSaver.js saveAs() 函数实现到 HTML 脚本中

css - 尝试排列 Twitter、Pinterest 和 Facebook 按钮

html - IE 的标记/CSS 问题

javascript - 如果输入找到打开的容器,否则什么都不做

html - 调整浏览器窗口大小时防止页脚内容移动