`aria-*` boolean attributes serialize as the empty string

Offen
#538 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
ruby
Bereich
accessibility

Rechercherichtung

Lies design/v2/follow-up-issues.md und untersuche den Base-Serialisierungspfad für aria-Attribute im 2.0-Zweig. Führe die golden HTML suite aus und prüfe die betroffenen Katalog- und Komponenten-Snapshots, einschließlich Breadcrumb-Trennzeichen, Ellipse, CommandInput und dekorativer SVGs. Erledigt ist die Aufgabe, wenn aria-Boolesche Werte wie festgelegt als "true" oder "false" gerendert werden, die 2.0-Snapshots neu aufgezeichnet wurden und ihr Diff geprüft wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug
  • Where: the components that pass a boolean under the aria hash:
    aria: {hidden: true} in BreadcrumbSeparator, BreadcrumbEllipsis and
    PaginationEllipsis (also reached through DataTablePagination),
    aria: {disabled: true} in BreadcrumbPage, aria_expanded: true in
    CommandInput. The breadcrumb, pagination, data_table and command
    snapshots carry aria-hidden="", aria-disabled="" or aria-expanded="".
    Components that pass the String "true"InputOtpSlot,
    NativeSelectIcon, AlertDialogContent — already serialize correctly and
    are not affected.
  • Effect: the ARIA value grammar accepts true/false/undefined; an
    empty string is invalid and browsers resolve it as not set. The breadcrumb
    and pagination separators and ellipses are therefore exposed to assistive
    technology, "current" breadcrumb items are not announced as disabled, and the
    command input's expanded state is unset. This is Phlex's serialization of
    true under a nested hash (a bare attribute), so any component that passes
    a boolean there is affected — five today.
  • Fix: pass "true" (a String) for aria-* attributes, or add a
    serialization rule in Base that stringifies booleans under the aria
    key; re-record (on the 2.0 line) everything that changes and review the diff.
  • 2.0 note: spec §4.3 currently preserves this behaviour for parity
    (true""). The right 2.0 behaviour is aria-x="true"; decide it
    explicitly and let the re-record (on the 2.0 line) show the blast radius.

Surfaced by the golden HTML suite (PR #536), which pins what 1.6 renders today — this defect included. Per maintainer decision (2026-09-19) main stays as is: this is addressed on the 2.0 line, and the golden snapshot that pins it is re-recorded there with the diff reviewed.

Source: design/v2/follow-up-issues.md.

Vorherrschende Sprache
Ruby
Sterne
1k
Forks
67
Ø Merge
2 T. 19 Std.
Gemergte PRs (30 T.)
18

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ruby-ui/ruby_ui

Alle Issues in ruby-ui/ruby_ui

Ähnliche Issues

Weitere Issues zu Ruby

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.