YouTube iframe API 中“ESC”键的事件发射器

Cal*_*vin 6 javascript iframe accessibility youtube-iframe-api

情况
我目前正在我的页面上嵌入 YouTube iframe 并将其加载到弹出模式之上。当我按“ESC”时,我可以关闭弹出模式,但如果用户将选项卡焦点放在 YouTube 播放器中的某些内容上,则浏览器将不再能够检测用户是否按“ESC”来尝试关闭弹出模式。这绝对是一个 A11y 问题。

要解决的问题
有没有办法检测用户是否在焦点被困在播放器内时按下“ESC”键?有用于playerStateChange、质量变化等的事件发射器,但我没有看到任何按键事件。

已经考虑但被拒绝的解决方案:

  1. 阻止用户将注意力集中在 YouTube iframe 上并在播放器外部创建自定义按钮/控件来处理控件 - 这种解决方案太麻烦了,需要对按钮和控件进行样式设置
  2. 在播放器状态发生变化时将焦点弹回到窗口 - 意外地移动焦点是一个很严重的问题,但 YouTube API 中内置的当前事件发射器也无法涵盖所有​​用户焦点陷阱的情况。

非常感谢任何帮助/指导!