2016-09-02 3 views
0

Ich habe ein Problem, wo JAWS klickt Ereignisse, wenn eine JAWS-spezifische Tastenkombination verwendet wird, während eine Rasterzelle fokussiert ist und JAWS im Formularmodus ist.JAWS Tastenkürzel auslösen klicken Ereignisse auf Aria role = "gridcell"

Das folgende Beispiel wird das Verhalten produzieren am Ende ich beschrieben: Ich finde es am einfachsten, dieses Verhalten in Firefox zu reproduzieren und mit JAWS 17:

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> 
<head><title>clicking issue</title></head> 
<body> 
     <table role="grid" summary="sample"> 
     <tbody> 
      <tr> 
        <td> 
         <a href="#" onclick="alert(event.type);">Gridcell Role Cell</a> 
        </td> 
      </tr> 
      <tr> 
        <td> 
         <input type="checkbox" name="testcheckbox">Gridcell Checkbox 
        </td> 
      </tr> 
     </tbody> 
     </table> 


     <input type="checkbox" name="testcheckbox2">Non-Gridcell Checkbox 2 
</body> 
</html> 

Wenn Sie mit der Tabulatortaste navigieren auf den „Klick mich“ Zelle und Verwenden Sie eine JAWS-Tastenkombination, z insert + ctrl + b (Schaltflächen auf der Seitenverknüpfung anzeigen), ein Klickereignis wird für das fokussierte Element ausgelöst und die JS-Warnung wird angezeigt, die ein "Klick" -Ereignis meldet.

Ist dieses erwartete Verhalten von JAWS? Wie kann ich das Auslösen von Elementen vermeiden, wenn ein Tastatur-Shrotcut verwendet wird?

+0

Es tut mir leid, warum verwenden Sie die "Präsentation" Rolle hier? AFAIK, sollte es nicht verwendet werden, es sei denn, du musst unbedingt. –

+0

Ich denke, das ist ein Ablenkungsmanöver. rule = "grid" (und sogar keine Rolle auf dem Tabellen-Tag) erzeugt das gleiche Verhalten in Bezug auf das klickende Event-Problem. –

+1

Haben Sie eine URL? Ich vermute, dass Sie hier ein paar Probleme haben, wie zum Beispiel tabindex auf einem '', dessen Rolle innerhalb einer jetzt de-semantischen 'Tabelle' geändert wurde, zusammen mit einem' a', das keine 'href' hat. Angesichts dessen, was ich gerade in diesem Code sehe, denke ich, dass es notwendig ist, die gesamte Seite zu sehen. – aardrian

Antwort

0

Haben Sie Ihren Beispielcode versucht. Entfernen role="grid" funktioniert gut mit IE11 und JAWS17.

Um eine Liste der Kontrollkästchen zu erhalten, drücken Sie bitte insert+ctrl+x. Wenn wir role="grid" haben, schaltet das Kontrollkästchen zwischen insert+ctrl+x um.

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> 
<head> 
    <title>clicking issue</title> 
</head> 
<body> 
    <table summary="sample"> 
     <tbody> 
      <tr> 
       <td> 
        <a href="#" onclick="alert(event.type);">Gridcell Role Cell</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <input type="checkbox" name="testcheckbox" id="gcCheckbox"><label for="gcCheckbox">Gridcell Checkbox</label> 
       </td> 
      </tr> 
     </tbody> 
    </table> 


    <input type="checkbox" name="testcheckbox2" id="nonGcCheckbox"><label for="nonGcCheckbox">Non-Gridcell Checkbox 2</label> 
</body> 
</html> 
+0

Entfernen von Rolle = "Grid" ist keine Option, das Beispiel diente dazu, das Problem in seiner grundlegendsten Form außerhalb meiner Anwendung zu veranschaulichen. Die Arienrollen sind notwendig. –

Verwandte Themen