mdn/content

Screenreaders swallow keyboard events

Open

#37,887 创建于 2025年1月30日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)Markdown (22,427 fork)batch import
Content:Accessibilityhelp wanted

仓库指标

Star
 (8,900 star)
PR 合并指标
 (平均合并 7天 3小时) (30 天内合并 147 个 PR)

描述

MDN URL

https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Keyboard

What specific section or headline is this issue about?

Focusable elements should have interactive semantics

What information was incorrect, unhelpful, or incomplete?

This section recommends adding a keydown or keyup event to elements that can be focused using the keyboard.

However, some screenreaders and other tooling can swallow keyboard events, notably Enter or Space and replace them with a click event, which will break elements that don't watch for clicks.

What did you expect to see?

I would expect a hint that handling keyboard specific events might not be sufficient in some cases, for example because they might be replaced by the accessibility tooling.

Do you have any supporting links, references, or citations?

NVDA Screenreader https://www.nvaccess.org/download/

NVDA Github Conversation: https://github.com/nvaccess/nvda/issues/7898

JS Fiddle (taken from the conversation): https://jsfiddle.net/1m504ub6/1/

Do you have anything more you want to share?

While this might not be a common problem, I ran into this issue when debugging a flyout menu. The menu uses mouseenter instead of click for activation, which is likely problematic itself.

To verify this behaviour:

  • download the NVDA Screenreader
  • open the JS Fiddle
  • with the screenreader active, focus the button and press enter: this should produce a click event
  • disable the screenreader, focus the button and press enter: this should produce a keydown event

MDN metadata

贡献者指南