a11y: appendix "cite as" entry has `role="listitem"` with no `role="list"` parent

Offen Anfängerfreundlich
#15,171 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
javascript
Bereich
accessibility

Rechercherichtung

Der Issue verweist auf src/format/html/format-html-appendix.ts, insbesondere auf extractCiteEl um die Zeilen 322–326 und den Appendix-Code um die Zeilen 542–559. Lies nach, wie das Cite-Element extrahiert und angehängt wird, rendere dann das bereitgestellte QMD-Beispiel mit citation: true und prüfe das resultierende Appendix-Markup. Als erledigt gilt die Aufgabe, wenn der Cite-Eintrag keine axe-core-Verletzung aria-required-parent mehr auslöst; laut Issue kann entweder role="listitem" entfernt oder ein übergeordnetes Element mit role="list" hinzugefügt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

accessibility bug
I have:
  • searched the issue tracker for similar issues
  • installed the latest version of Quarto CLI
  • formatted my issue following the Bug Reports guide
Bug description

With citation: true, the "For attribution, please cite this work as" entry in the appendix is a div with role="listitem" and no role="list" ancestor.
axe-core reports this as aria-required-parent (critical, WCAG 2.0 A, SC 1.3.1 Info and Relationships).

Pandoc's citeproc wraps each csl-entry (role="listitem") in a role="list" container.
extractCiteEl takes the .csl-entry out of that container and returns it alone, and the appendix code appends it to the citation section.

#14755 reports the same defect for margin citations.
That issue is about a different code path, so a fix for the margin case does not cover the appendix.

Steps to reproduce
---
title: "Cite as test"
author: Jane Doe
date: 2026-01-01
citation: true
format: html
---

Content.
quarto render index.qmd
grep -o '<div[^>]*quarto-appendix-citeas[^>]*>' index.html
Actual behavior
<div id="ref-doe2026" class="csl-entry quarto-appendix-citeas" role="listitem">

There is no element with role="list" in the page.
Running the axe.min.js that ships with Quarto against the rendered page gives one aria-required-parent violation, on this element.

Expected behavior

The entry is not marked as a list item when it has no list parent, or it is placed inside an element with role="list".

Your environment
  • IDE: none, terminal only
  • OS: macOS (Darwin 27.0.0, Apple Silicon)
Quarto check output
Quarto 99.9.9
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.10.0: OK
      Dart Sass version 1.101.0: OK
      Deno version 2.7.14: OK
      Typst version 0.15.1: OK
[✓] Checking Quarto installation......OK
      Version: 99.9.9
      commit: 69592e5c1718d3e1b2f3d11e757d32e23a16af67
Vorherrschende Sprache
JavaScript
Sterne
6.1k
Forks
478
Ø Merge
17 Std. 36 Min.
Gemergte PRs (30 T.)
139

Entwicklungsumgebung

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 quarto-dev/quarto-cli

Alle Issues in quarto-dev/quarto-cli

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

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