ion-icon without a label is exposed as an image with no name
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 84/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript, web-dev
- Ambito
- accessibility, frontend
Direzione di ricerca
La issue rimanda a icon.tsx su main; inizia leggendo come vengono renderizzati role e gli attributi ARIA dell’host. Controlla se esistono già test di accessibilità, poi verifica che un’icona senza aria-label né aria-labelledby sia nascosta alle tecnologie assistive, mentre un’icona con etichetta rimanga un’immagine. La issue non indica alcun file di test, quindi individua il test pertinente prima di eseguirlo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Current behaviour
ion-icon always renders role="img" on its host. When no aria-label is given, which is the usual
case for an icon next to text, screen readers meet an image with no name. axe reports this as
role-img-alt. One app we scanned had 54 of these across three pages.
Apps can add aria-hidden="true" to each decorative icon, but that is easy to miss, and the default is
the inaccessible case.
Steps to reproduce
- Add
<ion-icon name="logo-github"></ion-icon>to a page, with noaria-label. - Inspect the accessibility tree: the icon is an image with no name.
- Or run axe's
role-img-altrule.
Seen with ionicons 8.0.13. icon.tsx on main renders role="img" on the host the same way.
Expected behaviour
An ion-icon with no aria-label or aria-labelledby is hidden from assistive technology, as Angular
Material's mat-icon does by default.
Possible fix
Set aria-hidden="true" on the host when neither aria-label nor aria-labelledby is present, and
leave role="img" for labelled icons.
Related: #710 and #838 (closed), about labels being forced.
Happy to open a PR for this if you'd like one.
- Lingua principale
- TypeScript
- Stelle
- 18.2k
- Fork
- 2k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ionic-team/ionicons
-
icon request: Easy AI logoApertatriage
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
ionic-team/ionicons#1520 ·
-
triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
ionic-team/ionicons#1519 ·
-
icon request: PillApertatriage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ionic-team/ionicons#1516 ·
-
bug: Invalid @supports syntax in icon.css breaks under strict CSS parsers (e.g. Lightning CSS)Forse già presa @johnjenkins l’ha presa 74 giorni fa. Apertatriage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
ionic-team/ionicons#1513 ·
-
triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ionic-team/ionicons#1510 ·
Tutte le issue di ionic-team/ionicons
Issue simili
-
Add: ESP 2 ROApertaapproved check:passed streams:add
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
ipaas: Configure form shows "Deploy to apply." and "Overrides selected Link" when they don't applyAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
wso2/integration-control-plane#1118 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
UTDNebula/utd-notebook#311 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno