graphics-3d: accessible DOM mirror for 3D objects
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 45/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- three.js, typescript
- Domaine
- accessibility, frontend
Piste de recherche
Start with docs/docs/lib-graphic-3d/index.mdx and inspect the graphics-3d package’s tick, ctx.graphics.worldToScreen, and __clear entry points. Check how components-systems defines ECS components before deciding where the API belongs. Done means an opt-in DOM mirror supports positioning, keyboard focus and activation, and cleanup, with tests and documentation covering those behaviors.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Which package or utils is this feature request for?
graphics-3d
Feature
Three.js draws everything into a canvas. Screen readers and keyboard navigation (Tab, Enter) cannot reach the objects of a 3D scene, so a game made with @nanoforge-dev/graphics-3d is not accessible to blind or keyboard-only players (benchmark criterion E2, scored ❌ for Three.js).
Ideal solution or implementation
An opt-in way to mirror a 3D object as a hidden DOM element:
- data: a label, an ARIA role (
button,img…), and whether it is focusable; - each tick, the element is positioned over the object with
ctx.graphics.worldToScreen, inside the game container (incontainer.ownerDocument, so pop-out keeps working); - focus and Enter/Space are forwarded to game code (a callback or an event);
- the element is hidden visually but not from assistive tech, and removed on
__clear.
If the API is an ECS component (e.g. Accessible3D(label, role, focusable)), it belongs in components-systems, and the library only provides the positioning helper.
Small, documented, and tested (positioning, focus, cleanup).
Alternative solutions or implementations
Babylon's @babylonjs/accessibility does the same thing with a DOM tree mirrored from the scene. We could port the idea instead of the code.
Other context
Deferred from the first version of graphics-3d. See docs/docs/lib-graphic-3d/index.mdx (E2).
- Langage dominant
- TypeScript
- Étoiles
- 7
- Forks
- 2
- Merge moyen
- 1 j 17 h
- PR mergées (30 j)
- 17
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NanoForge-dev/Engine
-
dependencies enhancement good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
NanoForge-dev/Engine#513 ·
Les mainteneurs répondent en général sous 1 jour
-
bug chore tests
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
NanoForge-dev/Engine#511 ·
Les mainteneurs répondent en général sous 1 jour
-
docs(network): TSDoc says ICE_SERVERS defaults to an empty list, the code uses public STUN serversOuvertedocumentation good first issue modules:network
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
NanoForge-dev/Engine#509 ·
Les mainteneurs répondent en général sous 1 jour
-
documentation modules:ecs packages:asset packages:core
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
NanoForge-dev/Engine#508 ·
Les mainteneurs répondent en général sous 1 jour
-
bug good first issue modules:music modules:sound
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
NanoForge-dev/Engine#505 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de NanoForge-dev/Engine
Issues similaires
-
Mend: dependency security vulnerability
Difficulté 1/5 1-3 heures Accessibilité débutants 65/100
fdm-monster/fdm-monster#5563 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
be-BOP-io-SA/be-BOP#2849 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
Les mainteneurs répondent en général sous 1 jour
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
growilabs/growi#12246 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
🐛 The Rulekeeper - An index run that gives up on the lock ends SucceededPeut-être pris @github-actions l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
SSWConsulting/SSW.Rules#2809 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour