Различайте нажатие клавиши и щелкните в Mozilla, когда NVDA включена

Требование состоит в том, чтобы различать события нажатия клавиш и щелчка мыши в браузере Mozilla. Условием является то, что браузер Mozilla должен иметь возможность различать события (нажмите и введите), когда NVDA ВКЛЮЧЕНА.


person Sandeep Mukherji    schedule 21.10.2018    source источник
comment
Браузер сможет сделать это в любом случае независимо от того, включена ли программа чтения с экрана , потому что это два разных типа событий. В вашем вопросе больше нечего сказать. Возможно, вы могли бы дополнить его более важной информацией. Этот ответ на вопрос о проверке, включена ли программа чтения с экрана, также может вам помочь.   -  person Andy    schedule 21.10.2018
comment
Я согласен с @Andy, нам нужно больше информации. Бывают ситуации, когда некоторые события клавиатуры не передаются вашему объекту, если NVDA работает, потому что NVDA фиксирует события, такие как клавиши со стрелками вверх / вниз для перемещения по DOM или клавиши быстрой навигации, такие как ' H 'или' T '. В таких случаях ваш объект должен иметь правильный role, чтобы получать эти события. Но опять же, чтобы действительно ответить на этот вопрос, необходимы более подробные сведения.   -  person slugolicious    schedule 22.10.2018


Ответы (1)


Если вы хотите различать только нажатие Enter / Space и нажатие мыши / указателя, я бы, вероятно, использовал как onclick, так и onmousedown.

Если onmousedown запущен, я бы установил флаг, который я бы прочитал в onclick, сообщая мне, действительно ли это было изначально событием указателя.

Что-то вроде:

<button onmousedown="pointerFunction()" onclick="clickFunction()">Active this</button>

<script>
var isPointerEvent = false;
function pointerFunction() {
    isPointerEvent = true;

    // Do something for pointer users
}

function clickFunction() {
    if (isPointerEvent) {
        return isPointerEvent = false;
    }

    // Do something for keyboard / screen-reader users
}
</script>

Для записи я разместил здесь то же предложение по аналогичному вопросу: https://stackoverflow.com/a/57055357/10494842

person Tobias Christian Jensen    schedule 16.07.2019