Skip to content

fix(checks/no-focusable-disable): don't count non-disableable elements as disabled#3393

Merged
straker merged 49 commits intodequelabs:developfrom
dan-tripp:issue3315
Feb 22, 2022
Merged

fix(checks/no-focusable-disable): don't count non-disableable elements as disabled#3393
straker merged 49 commits intodequelabs:developfrom
dan-tripp:issue3315

Conversation

@dan-tripp
Copy link
Copy Markdown
Contributor

focusDisabled() now checks the element name to see if "disabled" attribute is valid on that element.

Closes issue #3315

dan-tripp and others added 30 commits August 19, 2021 21:17
Make `internal-link-present-evaluate` work with virtualNode rather than actualNode.

Closes issue dequelabs#2466
This reverts commit 428e015, reversing
changes made to 9f996bc.
This reverts commit 9f996bc.
@dan-tripp dan-tripp requested a review from a team as a code owner February 21, 2022 16:04
Copy link
Copy Markdown
Contributor

@straker straker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking on the pr. Just have 1 suggestion, but otherwise it looks good.

dan-tripp and others added 2 commits February 21, 2022 14:05
Co-authored-by: Steven Lambert <2433219+straker@users.noreply.github.com>
@dan-tripp
Copy link
Copy Markdown
Contributor Author

Right on. Done.

@straker straker dismissed their stale review February 21, 2022 21:45

Resolved

@straker
Copy link
Copy Markdown
Contributor

straker commented Feb 22, 2022

reviewed for security

@straker straker changed the title fix(commons/dom): focusDisabled() behavior fix(checks/no-focusable-disable): don't count non-disableable elements as disabled Feb 22, 2022
@straker straker merged commit bb8b5ca into dequelabs:develop Feb 22, 2022
@dan-tripp
Copy link
Copy Markdown
Contributor Author

Thanks!

rafaelpaniago1 added a commit to masganem/axe-core-mes-20252 that referenced this pull request Nov 7, 2025
Implementação da correção do bug onde focusDisabled() não verificava
se o elemento suporta o atributo 'disabled' antes de usá-lo.

Problema:
- Links <a href disabled> eram tratados como não-focusáveis
- Atributo 'disabled' não é válido em elementos <a>
- Apenas elementos de formulário específicos suportam 'disabled'

Solução aplicada:
1. Criar lista de elementos que suportam disabled:
   button, command, fieldset, keygen, optgroup, option,
   select, textarea, input
2. Criar função helper canBeDisabled(nodeName)
3. Verificar tipo de elemento antes de checar atributo disabled

Arquivo modificado: lib/commons/dom/focus-disabled.js

Comparação com solução oficial (PR dequelabs#3393):
✅ FUNCIONALMENTE IDÊNTICA - 100% similar

Diferenças (apenas estilísticas):
- Nomenclatura: canBeDisabled() vs isDisabledAttrAllowed()
- Documentação: Minha solução tem JSDoc + comentários extras
- Formatação: Oficial usa trailing commas

Pontos positivos da minha solução:
✅ JSDoc completo na função helper
✅ Comentário com exemplo concreto (<a href disabled>)
✅ Explicação do porquê da mudança

Ambas as soluções:
✅ Mesma lista de elementos (9 elementos)
✅ Mesma lógica de verificação
✅ Mesma referência à spec (MDN)
✅ Resolvem o problema completamente

Análise completa em: ANALISE-ISSUE-3315.md

Referências:
- Issue: dequelabs#3315
- PR oficial: dequelabs#3393
- MDN: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled
- Commit oficial: bb8b5ca
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants