KC: Aufklappfeld Bedienung

Hi Leute,

habe eine Seite wo die Auswahlfelder (siehe Screenshots) enthalten sind. Beim neu Laden der Seite wird das oberste Auswahlfeld automatisch aufgeklappt angezeigt (IST Bild). Das andere Aufklappfeld ist geschlossen (SOLL).

Ich möchte das alle geschlossen sind und nur wenn der Besucher die öffnet.

Im Code ist folgendes:

<button type="button" class="flex items-center bg-white border-b" data-accordion-target="#accordion-flush-body-1" aria-expanded="false" aria-controls="accordion-flush-body-1" style="color: #000;">

Habe den verdächtigen Eintrag fett markiert. Wenn ich alle auf 'false' setze, ändert sich nichts. Wenn ich die Reihenfolge der Aufklappfelder ändere, indem ich von false auf true setze, dann verändert sich das schon. Habe ich einen Denkfehler oder was ist hier los?

  1. Servus!

    Hi Leute,

    habe eine Seite wo die Auswahlfelder (siehe Screenshots) enthalten sind. Beim neu Laden der Seite wird das oberste Auswahlfeld automatisch aufgeklappt angezeigt (IST Bild). Das andere Aufklappfeld ist geschlossen (SOLL).

    Ich möchte das alle geschlossen sind und nur wenn der Besucher die öffnet.

    Habe ich einen Denkfehler oder was ist hier los?

    Nimm das native dialog-Element, das von allen Browsern unterstützt wird.

    Herzliche Grüße

    Matthias Scharwies

    --
    Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
  2. Hallo KC,

    ohne genauere Kenntnis deiner Seite und der verwendeten JavaScript-Libraries lässt sich da nicht viel sagen. Es ist ein Button, der tut von sich aus nichts. Erst JavaScript bringt ihn zum Leben.

    aria-expanded tut von sich aus auch nichts, es sei denn, Du hast CSS geschrieben, das darauf reagiert. Ansonsten haben aria-Attribute auf die visuelle Darstellung keinen Einfluss, die dienen primär dazu, Assistenztechniken über die Bedeutung von Inhalten zu informieren.

    Matthias' Hinweis auf das Dialog-Element bezieht sich auf Popup-Dialoge; damit erreichst Du keine Aufklapp-Darstellung.

    Vielleicht eher das details-Element, da muss man dann aber noch etwas feilen, wenn man die Pfeile exakt so darstellen will wie Du sie hast. Weiß nicht, ob sich das soweit verbiegen lässt.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Servus!

      Hallo KC,

      ohne genauere Kenntnis deiner Seite und der verwendeten JavaScript-Libraries lässt sich da nicht viel sagen. Es ist ein Button, der tut von sich aus nichts. Erst JavaScript bringt ihn zum Leben.

      aria-expanded tut von sich aus auch nichts, es sei denn, Du hast CSS geschrieben, das darauf reagiert. Ansonsten haben aria-Attribute auf die visuelle Darstellung keinen Einfluss, die dienen primär dazu, Assistenztechniken über die Bedeutung von Inhalten zu informieren.

      Matthias' Hinweis auf das Dialog-Element bezieht sich auf Popup-Dialoge; damit erreichst Du keine Aufklapp-Darstellung.

      Vielleicht eher das details-Element, da muss man dann aber noch etwas feilen, wenn man die Pfeile exakt so darstellen will wie Du sie hast. Weiß nicht, ob sich das soweit verbiegen lässt.

      Mist ja: HTML/Tutorials/details

      Es geht doch nicht um die Pfeile, sondern um die Funktionalität im Browser.

      Die Pfeile, bzw. die gewünschte Darstellung, kann man dann mit CSS erreichen.

      Herzliche Grüße

      Matthias Scharwies

      --
      Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
      1. @@Matthias Scharwies

        Mist ja: HTML/Tutorials/details

        Ja, Mist. Why <details> is Not an Accordion

        🖖 Живіть довго і процвітайте

        --
        „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
        — @Grantscheam auf Twitter
        1. Servus!

          @@Matthias Scharwies

          Mist ja: HTML/Tutorials/details

          Ja, Mist. Why <details> is Not an Accordion

          Das ist so 2019! und das hatten wir schon!

          Herzliche Grüße

          Matthias Scharwies

          --
          Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
        2. Hallo Gunnar,

          Ja. Aber was ist denn dann ein Akkordion?

          Dies?

          Rolf

          --
          sumpsi - posui - obstruxi
    2. Bei diesen Aufklappfeldern herrscht kein JavaScript, scheint rein CSS zu sein

      1. Hallo KC,

        keine Ahnung, was da scheint. Solange ich es nicht sehe und auseinander nehmen kann, kann ich nichts dazu sagen.

        Rolf

        --
        sumpsi - posui - obstruxi
      2. @@KC

        Bei diesen Aufklappfeldern herrscht kein JavaScript, scheint rein CSS zu sein

        Aber bei den Buttons. Die wechseln ja ihren aria-expanded-Status von "false" auf "true" und andersrum – mit JavaScript.

        Was dann ohne weiteres JavaScript, sondern mit reinem CSS geht, ist das Auf- und Zuklappen der jeweils auf die Buttons folgenden Elemente:

        [aria-expanded="false"] + * { display: none }
        

        Siehe Collapsible Sections auf Inclusive Components.

        🖖 Живіть довго і процвітайте

        --
        „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
        — @Grantscheam auf Twitter
        1. Hi,

          Aber bei den Buttons. Die wechseln ja ihren aria-expanded-Status von "false" auf "true" und andersrum – mit JavaScript.

          Aber warum ändert sich der aria-expanded-Status des Buttons? Der Button ist doch nicht "expanded", der ist noch genauso groß wie vorher.

          Der aria-expanded-Status müßte sich doch bei dem zu- bzw. aufgeklappten Element (div, section oder was auch immer das sein mag).

          cu,
          Andreas a/k/a MudGuard

          1. @@MudGuard

            Aber bei den Buttons. Die wechseln ja ihren aria-expanded-Status von "false" auf "true" und andersrum – mit JavaScript.

            Aber warum ändert sich der aria-expanded-Status des Buttons? Der Button ist doch nicht "expanded", der ist noch genauso groß wie vorher.

            Der aria-expanded-Status müßte sich doch bei dem zu- bzw. aufgeklappten Element (div, section oder was auch immer das sein mag).

            Steht doch im verlinkten Artikel unter State:

            “Some make the mistake of placing aria-expanded on the target element rather than the control itself. This is understandable since it is the content that actually switches state. But, if you think about it, this wouldn't be any good: the user would have to find the expanded content — which is only possible if it's actually expanded! — and then look around for an element that might control it. State is, therefore, communicated through the control that one uses to switch it.”

            Für das zugeklappte Element könnte man statt [aria-expanded="false"] + * { display: none } auch das HTML-Attribut hidden setzen – und hätte dann fürs Umschalten eine Zeile JavaScript mehr.

            🖖 Живіть довго і процвітайте

            --
            „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
            — @Grantscheam auf Twitter