当前位置: 首页 > 文档资料 > HTML 宝典 >

3.3.1 label控件

优质
小牛编辑
123浏览
2023-12-01

顾名思义,label控件用来为每个表单元素添加有意义的描述,并且,单击它将导致相关联的表单元素获得焦点。因此, label控件可以优雅地扩大表单元素的点击区域,能够改善表单的易用性和可访问性。

比如,单纯的复选框,用户要点击那个小方框才能进行选择。由于这个点击区域本身很小,用户很难点击到合适的位置。如果使用 label 元素,用户就可以单击 label 元素来操作复选框,可以大大提升表单的可访问性和可用性。

label控件
图3-3 label控件

将 label控件与表单控件关联起来非常容易,并且有两种方式来实现:

一种是隐式关联,即把表单控件放在 label控件中,让 label控件包含表单控件,两个控件便会自动关联:

<label><input type="checkbox" value="1"/>10天内自动登录</label>

另一种是显式关联,即把 label控件 for 属性的值,设置为所要关联的表单控件的 id,两个控件就被显式地关联起来:

<input id="agree" type="checkbox" value="1"/>
<label for="agree">10天内自动登录</label>

显式关联对提升表单的可用性和可访问性都有帮助,假如访问者与标签有交互(如使用鼠标点击了标签),与之对应的表单控件就会获得焦点。

这种关联还可以让屏幕阅读器将文本标签与相应的控件一起念出来,这对不了解表单字段含义的视觉障碍用户来说是多么重要。因此,强烈建议在 label 元素中包含 for 属性。

说明:

在提升表单的可用性和可访问性方面,除了使用 label控件来扩大表单元素的点击区域,还可以通过 accesskey属性,为表单元素设置快捷键(不区分大小写)。这样的话,就可以通过键盘操作,让表单元素获得焦点,更加方便。如:

<input id="agree" accesskey="a" type="checkbox" value="1"/>
<label for="agree">10天内自动登录</label>

这样一来,当用通过鼠标户点击这个 label控件,或在键盘上同时按下 alt + a 键,都可以让 id="agree" 的文本输入控件获得焦点。

需要注意的是,accessKey属性所设置的快捷键,不能与浏览器的快捷键冲突,否则将优先激活浏览器的快捷键。

如果在CSS中,为 label 指定cursor: pointer;,当访问者指向标签时,就会显示为手形,而不是默认的箭头,就会提示用户这是一个可以操作的元素,也能提升表单的可用性和可访问性。