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

Ouverte
#538 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
ruby
Domaine
accessibility

Piste de recherche

Lisez design/v2/follow-up-issues.md et inspectez le chemin de sérialisation de Base pour les attributs aria sur la branche 2.0. Exécutez la golden HTML suite et examinez les snapshots concernés du catalogue et des composants, notamment les séparateurs de breadcrumb, les points de suspension, CommandInput et les SVG décoratifs. C’est terminé lorsque les booléens aria sont rendus sous la forme "true" ou "false", comme décidé, que les snapshots 2.0 ont été réenregistrés et que leur diff a été examiné.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Ruby
Étoiles
1k
Forks
67
Merge moyen
2 j 19 h
PR mergées (30 j)
18

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ruby-ui/ruby_ui

Toutes les issues de ruby-ui/ruby_ui

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.