Использование сочетаний клавиш важно как при проблемах со специальными возможностями, так и в целом, поскольку использование клавиатуры гораздо точнее, чем прикосновение к мыши и наведение указателя.

К сожалению, сочетания клавиш никогда не работают, вероятно, если вы используете неанглийскую раскладку клавиатуры, но почему это так? Вы могли бы подумать, что набрав «Shift +?» даст один и тот же результат независимо от того, на каком языке вы говорите, и одно и то же «/».

В facebook вы можете получить это меню, если наберете «Shift +?», Но ввод «/» не работает на датской раскладке клавиатуры:

Причина в том, что браузеры выглядят странно, и разработчики не используют один и тот же способ распознавания нажатого символа.

Чтобы убедиться в этом, попробуйте перейти на https://keycode.info/ со своей собственной клавиатурой и переключить раскладку клавиатуры в своей ОС, затем посмотрите на это изображение, чтобы узнать, какая клавиша сейчас какая на английской клавиатуре:

Проблема в коде

Это код для «/» в датской раскладке клавиатуры. На нашей клавиатуре нужно нажать Shift и клавишу 7:

Но на английской / американской клавиатуре вы набираете «/» с помощью клавиши 3 справа от «m».

Посмотрите, как все, кроме event.key, разные! На английском это косая черта или 191, а на датском - это цифры 7 и 55.

Как это исправить?

Решение состоит в следующем:

  • прекратить использование event.code и переключиться на event.key
  • в зависимости от языка пользователя, знать, что event.code относится к какой клавише на его клавиатуре

Либо на изменение уйдет много времени. Причина в том, что, во-первых, хорошее образование (a11y = доступность, сокращенная на 11 букв), и разработчикам нравятся числа в языках программирования, поскольку сравнение чисел выполняется быстрее и удобнее.

Вот, например, покопавшись в коде внешнего интерфейса facebook, вы можете увидеть его в действии:

Здесь вы можете увидеть сравнение Facebook с keyCode и проверить, набрал ли я «55», то есть «7». Но вы можете видеть, что MDN (веб-документация Mozilla) сообщает, что и keyCode, и which имеют символ 👎, и он говорит: «Предупреждение: этот атрибут устарел; вместо этого следует использовать KeyboardEvent.key, если таковой имеется ». в разделе «Устаревшие свойства».

и даже у code есть такой большой знак:



Slack тоже ошибается!

Также slack делает это неправильно, и, поскольку это приложение Electron.js (что означает приложение со встроенным браузером), оно использует JavaScript и имеет те же ошибки:

К сожалению, это не работает.

Но нам нужно это изменение! Пожалуйста, поделитесь этим со своими разработчиками, которые делают упор на доступность!

А если в вашем приложении нет Shift +? меню, быстро сделай! Знаешь, он есть на всех крутых сайтах. Вы проверяли свои любимые сайты?