作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在扩展面板标题中有一个复选框,出于可访问性的原因,该复选框需要对仅使用键盘的用户起作用。但是,如果您使用 Tab 键将焦点放在复选框上,按空格键或 Enter 键不会选中/取消选中复选框,而是会展开面板。我正在努力解决这个问题,因为这些是 Angular Material 组件,我不确定它们是如何在引擎盖下工作的。
如何允许使用键盘选中/取消选中复选框?
这里有一些 html 展示了渲染时的问题:
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-checkbox color="primary">Label</mat-checkbox>
</mat-expansion-panel-header>
Content
</mat-expansion-panel>
最佳答案
为了防止键盘和鼠标事件到达扩展面板,您可以调用$event.stopPropagation()
在 keydown
和 click
复选框的事件处理程序:
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-checkbox color="primary"
(click)="$event.stopPropagation()"
(keydown)="$event.stopPropagation()" >
Label
</mat-checkbox>
</mat-expansion-panel-header>
Content
</mat-expansion-panel>
关于扩展面板标题内的 Angular Material 复选框 : how to allow the checkbox to be activated with the keyboard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56775393/
我是一名优秀的程序员,十分优秀!