focus() funktioniert nicht bei <li> Elementen

Heyho,

ich arbeite gerade am Mootools Framework und erweitere die Widgets dahingehend, dass eine barrierefreie Nutzung der Webseite möglich wird. Aktuell bearbeite ich das DropDownMenu Widget. Das Problem ist nun, dass für die Tastaturnavigation natürlich immer der Fokus entsprechend gesetzt werden muss. Ich kann in der Menubar navigieren, aber sobald ich ein Untermenü öffne, springt der Fokus leider nicht auf das erste Element des Menüs über. Das Menü wird über eine Listenstruktur gebaut:
Code:
<ul>
  <li>Menuitem1</li>
  <li>Menuitem2</li>
  <ul>
    <li>Submenuitem1</li>
    <li>Submenuitem2</li>
  </ul>
  <li>Menuitem3</li>
</ul>

Code:
	// mark the first element in the submenu as focused (if present)
	focSubElement : function() {
		if (focEl != null) {
			// first getChildren() returns the <ul> element, second one returns
			// the <li> child items. This is what we want
			var subitems = focEl.getChildren().getChildren('li');
			subitems[0][0].focus();
		}
	},

focEl speichert das aktuell fokussierte Element und mit getChildren() kann ich mir die Unterelemente holen. Das Element ist definitiv das richtige, aber der Fokus wird leider nicht gesetzt. Im Anhang noch 2 Bilder zur Verdeutlichung. Links die aktuelle Situation und rechts wie es eigentlich sein sollte. Getestet übrigens nur mit Firefox 3.6, aber wenns da schon nicht geht ...
 

Anhänge

  • ist.jpg
    ist.jpg
    32,9 KB · Aufrufe: 4
  • soll.jpg
    soll.jpg
    33,9 KB · Aufrufe: 6
subitems[0][0].focus();

Das duerfte aus meiner Sicht nicht funktionieren. Versuch besser die Funktion firstChild anstatt getChildren. Ansonsten musst Du bereits bei der ersten Anweisung den Indize deklarieren:

var subitems = focEl.getChildren()[0].getChildren('li');
subitems[0].focus();
 
Hi,

das LI-Element kann keinen Fokus erhalten (siehe Spezifikation).

Elemente, die den Fokus erhalten können, sind:
a, area, label, input, select, textarea und button


Ciao
Quaese
 
@ Chef_De_Loup

"firstChild()" wurde immer als "not a function" abgeschmettert und der Indexdeklarationswechsel brachte auch keinen Erfolg.

@ Quaese
Also der Pseudofokus im Firefox funktioniert dann evtl unter anderen Browsern ganz anders? Na suuuuper :(
 

Neue Beiträge

Zurück