OnClick и OnKeyPress для соответствия стандартам - PullRequest
2 голосов
/ 27 октября 2010

Я работаю над большим веб-сайтом (более 1600 страниц), который нуждается в обновлении для соответствия стандартам. В результате для каждого OnClick должен быть, скажем, Standards, обработчик OnKeyPress, чтобы люди, не использующие мышь, могли по-прежнему иметь доступ к контенту.

Некоторые теги имеют обработчик javascript onclick. EG:

<a onclick="doSumat();">

Это следующий кросс-браузер, работающий javascript:

<a onclick="doSumat();" onkeypress="this.onclick();" >

Будет ли он работать надежно во всех браузерах, и будет ли результат аналогичным щелчку мыши для пользователя, использующего программу чтения с экрана?

Ответы [ 2 ]

4 голосов
/ 20 августа 2014

W3C - SCR35: Обеспечение доступа к действиям на клавиатуре с помощью события onclick якорей и кнопок.

Хотя «onclick» звучит так, как будто оно связано с мышью, событие onclick фактически сопоставляется с действием по умолчанию.ссылки или кнопки.Действие по умолчанию происходит, когда пользователь щелкает мышью по элементу, но оно также происходит, когда пользователь фокусирует элемент и нажимает клавишу ввода или пробел, а также когда элемент запускается через API доступа.

Источник http://www.w3.org/TR/WCAG20-TECHS/SCR35

4 голосов
/ 27 октября 2010

В таком случае, почему бы не вызвать doSumat(); с обработчиками onclick и onkeypress?

Если вам нужен контекст this, вам нужно будет использовать doSumat.call(this);, но вы все равно можете поместить его в оба обработчика.

<a onclick="doSumat();" onkeypress="doSumat();">

С 1600 страницами, я думаю, вы пытаетесь найти что-то простое для добавления к каждому элементу с помощью обработчика onclick, но не должно быть намного сложнее, чтобы определить правила для слепого копирования всего из onclick оператор выражения onkeypress.

...