beatovich: window.location.hash versus element.focus()

Beitrag lesen

hallo

Um in einer etwas komplexen App die Navigation zu gewährleisten, nutze ich derzeit sehr oft

window.location.hash = "#exampletarget";

Das erzeugt einen history-Eintrag, dem nicht wirklich eine adäquate Funktionalität entspricht (ausser dass ich über Browser-Back zusätzlich im gegenwärtigen DOM navigieren kann).

Voraussetzung ist eine id im Ziel.

Es tut auch nicht das gewünschte, wenn ich eine Tab-Taste in einer Navigation rotieren lassen will. Da will ich ja nicht die Navigation focusieren, sondern den ersten Eintrag

Die Alternative wäre element.focus()

Hier bin ich gefordert, tabindex="0" zu definieren, falls das Ziel nicht direkt fokusierbar ist. Bei allen Zielen versuche ich aria-label zu berücksichtigen.

Hier nun die Frage: Was bietet generell die bessere Experience, focus oder location.hash?

Die betroffene Anwendung generiert Inhalte ausschliesslich über javascript. Bookmarking von bestimmten GUI-Zuständen ist nicht vorgesehen.