Moin zusammen,
ich dachte mir gerade, ich starte mal einen Thread, in dem wir unsere Learnings über neue Technologien, Best Practices, usw. teilen können, wenn wir mal wieder über etwas Interessantes gestolpert sind, was vielleicht noch nicht jeder auf dem Schirm hatte oder eben besonders wichtig ist oder einen interessanten Insight darstellt.
Sei es ein bestimmtes Feature in einer Programmiersprache, ein bestimmtes Konzept aus der Softwareentwicklung/IT, oder gar ein Learning zum Umgang mit Kunden.
Ich schlage vor, dass jedes Thema mit einer kurzen Überschrift abgegrenzt wird, damit es einigermaßen übersichtlich bleibt.
Ich fange mal an:
Den Weg, den er dabei eingeschlagen hat, war ganz interessant:
Die Tabs wurden nämlich nach dem Prinzip Progressive Enhancement aufgezogen, was in dem Fall bedeutet, dass diese auch ohne JavaScript funktionieren, allerdings nicht wie richtige Tabs erscheinen, sondern einfach untereinander, vollständig sichtbar als normaler Text dargestellt werden und mittels Verlinkung durch einen Hashtag dann bei Klick auf den Link/Tab zu dem entsprechenden Abschnitt gesprungen wird.
Anschließend hat er mit JS alles Nötige, um tatsächlich ein Tab-UI mit Ausblenden der nicht aktiven Abschnitte umzusetzen, nachgeladen bzw. Schritt für Schritt hinzugefügt.
Letztendlich konnte man die Tabs dann auch vollumfänglich mit der Tastatur ansteuern, wobei auch das Markup für die Barrierefreiheit der Tabs (
Abgesehen von den Learnings rund um die bestmögliche barrierefreie Gestaltung der Tabs gab es noch was anderes, was mir ins Auge gesprungen ist und neu war:
Zum Ausblenden der nicht aktiven Tabs hat er das HTML hidden-Attribut eingesetzt, das mir tatsächlich noch komplett unbekannt war. Ich wusste gar nicht, dass das existiert und habe es auch noch nie irgendwo im Einsatz gesehen.
Was mich im Nachhinein beim Lesen über das Attribut tatsächlich wundert:
Kevin Powell nutzt es meiner Ansicht nach in dem Fall ganz klar falsch, da bei MDN bzw. in der HTML-Spezifikation explizit steht, dass man es nicht verwenden sollte, um Tabs umzusetzen bzw. man nicht von sichtbaren Elementen auf mit
Auch wenn es wohl von Browsern teilweise einfach wie
Stattdessen kann es bspw. wohl eingesetzt werden, um Inhalte aus einem eingeloggten User-Zustand zu verstecken/anzuzeigen, o.ä.
Mit CSS kann man das Ganze übrigens auch einfach überschreiben, sodass ein mit
Hat jemand von euch das Attribut schon mal verwendet? Würde mich interessieren, wofür.
ich dachte mir gerade, ich starte mal einen Thread, in dem wir unsere Learnings über neue Technologien, Best Practices, usw. teilen können, wenn wir mal wieder über etwas Interessantes gestolpert sind, was vielleicht noch nicht jeder auf dem Schirm hatte oder eben besonders wichtig ist oder einen interessanten Insight darstellt.
Sei es ein bestimmtes Feature in einer Programmiersprache, ein bestimmtes Konzept aus der Softwareentwicklung/IT, oder gar ein Learning zum Umgang mit Kunden.
Ich schlage vor, dass jedes Thema mit einer kurzen Überschrift abgegrenzt wird, damit es einigermaßen übersichtlich bleibt.
Ich fange mal an:
a11y Tabs & HTML hidden-Attribut
Ich bin heute über ein interessantes Video von Kevin Powell gestolpert, in dem es um die möglichst optimale Umsetzung von Tabs ging, damit diese u.a. barrierefrei sind und grundsätzlich gut, userfreundlich funktionieren.Den Weg, den er dabei eingeschlagen hat, war ganz interessant:
Die Tabs wurden nämlich nach dem Prinzip Progressive Enhancement aufgezogen, was in dem Fall bedeutet, dass diese auch ohne JavaScript funktionieren, allerdings nicht wie richtige Tabs erscheinen, sondern einfach untereinander, vollständig sichtbar als normaler Text dargestellt werden und mittels Verlinkung durch einen Hashtag dann bei Klick auf den Link/Tab zu dem entsprechenden Abschnitt gesprungen wird.
Anschließend hat er mit JS alles Nötige, um tatsächlich ein Tab-UI mit Ausblenden der nicht aktiven Abschnitte umzusetzen, nachgeladen bzw. Schritt für Schritt hinzugefügt.
Letztendlich konnte man die Tabs dann auch vollumfänglich mit der Tastatur ansteuern, wobei auch das Markup für die Barrierefreiheit der Tabs (
aria
, role
und Co) größtenteils mit JS dynamisch gesetzt wurde.Abgesehen von den Learnings rund um die bestmögliche barrierefreie Gestaltung der Tabs gab es noch was anderes, was mir ins Auge gesprungen ist und neu war:
Zum Ausblenden der nicht aktiven Tabs hat er das HTML hidden-Attribut eingesetzt, das mir tatsächlich noch komplett unbekannt war. Ich wusste gar nicht, dass das existiert und habe es auch noch nie irgendwo im Einsatz gesehen.
Was mich im Nachhinein beim Lesen über das Attribut tatsächlich wundert:
Kevin Powell nutzt es meiner Ansicht nach in dem Fall ganz klar falsch, da bei MDN bzw. in der HTML-Spezifikation explizit steht, dass man es nicht verwenden sollte, um Tabs umzusetzen bzw. man nicht von sichtbaren Elementen auf mit
hidden
versteckte Elemente verlinken sollte.Auch wenn es wohl von Browsern teilweise einfach wie
display: none
implementiert wird, ist es semantisch in dem Fall wohl nicht angebracht.Stattdessen kann es bspw. wohl eingesetzt werden, um Inhalte aus einem eingeloggten User-Zustand zu verstecken/anzuzeigen, o.ä.
Mit CSS kann man das Ganze übrigens auch einfach überschreiben, sodass ein mit
hidden
ausgeblendetes Element dann wieder angezeigt wird.Hat jemand von euch das Attribut schon mal verwendet? Würde mich interessieren, wofür.