Una solució a aquest problema seria fer un script utilitzant l'event.which i determinant que la tecla tab no executés l'script.
La pauta d'accessibilitat 9.3 de la WCAG 1.0 diu:
9.3 For scripts, specify logical event handlers rather than device-dependent event handlers.
i a les tècniques per solucionar aquest punt diu:
[...]if you must use device-dependent attributes, provide redundant input mechanisms (i.e., specify two handlers for the same element):
- Use "onmousedown" with "onkeydown".
- Use "onmouseup" with "onkeyup"
- Use "onclick" with "onkeypress"
Per tant quan s'utilitzi un event del tipus onclick és indispensable ser redundant i posar també un onkeypress per evitar ser dependent del mouse.
Però apareix un problema, a l'incorporar l'event onkeypress, des de Mozilla (en IE/win funciona i en la resta o desconec) la pàgina es tornarà innavegable per entre aquests enllaços.
Quan aquests enllaços reben el focus s'activa l'event declarat a l'onkeypress cosa que en un principi no hauria de passar.
Sembla un error de Mozilla a l'hora de tractar aquest event.
Per contra, si no es controla l'event amb un onkeypress es pot navegar via teclat sense problemes.
Algú té més informació sobre aquest tema?
Comentaris
Comentat per faemino el 21/10/04
Parlo sense haber probat res, pero filtrant en la funció de javascript que s'executa en l'event si la tecla pitjada es "tab" per que no faci res?
Comentat per faemino el 21/10/04
Totalment factible amb el event.which i mirant quine tecla han pulsat. Però tan sols per Mozilla i derivats.
Comentat per are el 21/10/04
Gràcies, ho provo!