Row identity cannot find elements in shadow DOM, iframes, or unnamed walk stops, so their screens read as not covered
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 54/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- playwright, typescript
- Área
- accessibility, testing-qa
Línea de trabajo
Start with src/providers/axe/index.ts, src/providers/keyboard-walk/index.ts, and src/deps/real.ts to trace how findings are resolved to rows. Add real-browser tests for the four cases listed in the issue, then check that unresolved findings remain gaps and presentation or none tables are excluded. Also replace the issue-number comment in src/deps/real.ts with a description of the failure mode.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What happens
With row-scoped identities, every finding's element is found again on the live page to read its table row. A finding whose selector does not name exactly one element in the top document makes its screen a not-covered gap. That rule is safe, because it never turns a lost row identity into a pass. But several kinds of findings can never be found that way, so their screens read as not covered on every run:
- Shadow DOM and iframes.
src/providers/axe/index.tsjoins axe'snode.targetlist into one selector. For an element inside a shadow root or an iframe, axe returns one selector per boundary, and the joined string names nothing, or the wrong element, in the top document. Web-component design systems put most controls inside shadow roots. - Keyboard-walk stops with no path.
src/providers/keyboard-walk/index.tsuses a placeholder pathtab-stop-Nwhen the element path cannot be computed. As a selector it matches nothing. - Layout tables. The table selector in
src/deps/real.tscounts<table role="presentation">as a table. A layout table that wraps a data table makes the data table's rowsenclosing-row-unkeyedgaps.
Expected
- Resolve an axe target across shadow and frame boundaries (host selector, then into its shadow root or frame document, and so on), and read the row from the composed tree.
- Keep a keyboard-walk stop's element reference from the walk itself, rather than going back through a placeholder selector.
- Leave out tables whose role is
presentationornone. - A finding that still cannot be found stays a gap, as now.
Each case needs a real-browser test: a button inside a shadow root in a keyed row, a button in an iframe, a walk stop without a path, and a data table inside a layout table.
Also
A code comment carries an issue number, which the project rules do not allow: src/deps/real.ts ("the exact miss #146 is about"). Replace it with a description of the failure mode.
Status
Found while finishing the row-scoped identity change. It makes screens read as not covered; it never makes one read as verified.
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 0
- Merge medio
- 9 h 27 min
- PR fusionados (30 d)
- 31
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de usabl-dev/usabl
-
area: setup bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
area: engine enhancement performance
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
accessibility area: engine bug
Dificultad 4/5 3-5 días Aptitud para principiantes 59/100
Los mantenedores suelen responder en 1 día
-
area: engine security
Dificultad 4/5 3-5 días Aptitud para principiantes 46/100
Los mantenedores suelen responder en 1 día
-
area: engine bug security
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
Los mantenedores suelen responder en 1 día
Todos los issues de usabl-dev/usabl
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
area:plugins area:security area:skills bug has repro
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
anthropics/claude-code#105911 ·
Los mantenedores suelen responder en 1 día
-
[ko] Translate /team into KoreanAbiertodocumentation good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
dev-five-git/devup-ui#879 ·
Los mantenedores suelen responder en 11 días
-
openspec-apply-change skill: when blocked, may select a ready artifact unrelated to missingArtifactsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Fission-AI/OpenSpec#2165 ·
Los mantenedores suelen responder en 1 día
-
🐞 bug 🧐 unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Tencent/tdesign-vue-next#7032 · 1 comentario ·
Los mantenedores suelen responder en 1 día