Eu tenho visto o atributo ária por todo o lado enquanto trabalhava com material angular. Alguém pode me explicar, o que o prefixo ária significa? mas o mais importante é que estou tentando entender a diferença entre aria-hidden
e hidden
atributo.
256
Respostas:
O ARIA (Aplicativos Acessíveis da Internet Rico) define uma maneira de tornar o conteúdo e os aplicativos da Web mais acessíveis às pessoas com deficiência.
O
hidden
atributo é novo no HTML5 e diz aos navegadores para não exibir o elemento. Aaria-hidden
propriedade informa aos leitores de tela se eles devem ignorar o elemento. Veja os documentos do w3 para obter mais detalhes:https://www.w3.org/WAI/PF/aria/states_and_properties#aria-hidden
O uso desses padrões pode facilitar o uso da web por pessoas com deficiência.
fonte
hidden
significa escondido para todos.aria-hidden
significa oculto para leitores de tela e ferramentas similares. Isso é útil para componentes usados exclusivamente para formatação e que não contêm conteúdo real, por exemplo.hidden
Deve impedir o leitor de tela de acessar o conteúdo da tag.aria-hidden
está correta; no entanto, você não disse nada sobrehidden
como diferenciá-loaria-hidden
. Infelizmente, esta é a melhor resposta. Por favor, seja mais detalhado em suas respostas.Um atributo oculto é um atributo booleano (Verdadeiro / Falso). Quando esse atributo é usado em um elemento, ele remove toda a relevância para esse elemento. Quando um usuário visualiza a página html, os elementos com o atributo oculto não devem estar visíveis.
Exemplo:
Os atributos ocultos por ária indicam que o elemento e TODOS os seus descendentes ainda estão visíveis no navegador, mas serão invisíveis para ferramentas de acessibilidade, como leitores de tela.
Exemplo:
Dê uma olhada nisso . Deve responder a todas as suas perguntas.
Nota: ARIA significa Aplicativos Acessíveis da Internet Rico
Fontes: Grupo Paciello
fonte
aria-hidden="true"
ainda está visível no navegador, mas ficará invisível para ferramentas de acessibilidade, como leitores de tela.aria-hidden
é usado para ocultar o elemento de pessoas que usam seu site com ferramentas de acessibilidade.Diferença Semântica
De acordo com o HTML 5.2 :
Os exemplos incluem uma lista de guias em que alguns painéis não são expostos ou uma tela de logon que desaparece após o usuário efetuar login. Gosto de chamar essas coisas de "relevante temporalmente", ou seja, são relevantes com base no tempo.
Por outro lado, o ARIA 1.1 diz:
Em outras palavras, os elementos com
aria-hidden="true"
são removidos da árvore de acessibilidade , que a maioria das tecnologias assistenciais honra, e os elementos comaria-hidden="false"
certeza serão expostos à árvore. Elementos sem oaria-hidden
atributo estão no estado "indefinido (padrão)", o que significa que os agentes do usuário devem expô-lo à árvore com base em sua renderização. Por exemplo, um agente do usuário pode decidir removê-lo se a cor do texto corresponder à cor do plano de fundo.Agora vamos comparar a semântica. É apropriado usar
hidden
, mas nãoaria-hidden
, um elemento que ainda não é "relevante temporalmente", mas que pode se tornar relevante no futuro (nesse caso, você usaria scripts dinâmicos para remover ohidden
atributo). Por outro lado, é apropriado usararia-hidden
, mas nãohidden
, um elemento sempre relevante, mas com o qual você não deseja desorganizar a API de acessibilidade; esses elementos podem incluir “talento visual”, como ícones e / ou imagens que não são essenciais para o usuário consumir.Diferença efetiva
A semântica tem efeitos previsíveis em navegadores / agentes de usuário. A razão pela qual faço uma distinção é que o comportamento do agente do usuário é recomendado , mas não exigido pelas especificações.
O
hidden
atributo deve ocultar um elemento de todas as apresentações, incluindo impressoras e leitores de tela (supondo que esses dispositivos respeitem as especificações HTML). Se você deseja remover um elemento da árvore de acessibilidade e da mídia visual,hidden
seria necessário. No entanto, não usehidden
apenas porque você deseja esse efeito. Pergunte a si mesmo sehidden
é semanticamente correto primeiro (veja acima). Sehidden
não estiver semanticamente correto, mas você ainda quiser ocultar visualmente o elemento, poderá usar outras técnicas, como CSS.Elementos com
aria-hidden="true"
não são expostos à árvore de acessibilidade; portanto, por exemplo, os leitores de tela não os anunciarão. Essa técnica deve ser usada com cuidado, pois fornecerá experiências diferentes para diferentes usuários: agentes acessíveis não os anunciarão / renderizarão, mas ainda serão renderizados em agentes visuais. Isso pode ser uma coisa boa quando feito corretamente, mas tem o potencial de ser abusado.Diferença sintática
Por fim, há uma diferença na sintaxe entre os dois atributos.
hidden
é um atributo booleano , ou seja, se o atributo está presente, é verdadeiro - independentemente do valor que possa ter - e, se o atributo estiver ausente, é falso. Para o caso real, a melhor prática é não usar nenhum valor (<div hidden>...</div>
) ou o valor da sequência vazia (<div hidden="">...</div>
). Eu não recomendariahidden="true"
porque alguém lendo / atualizando seu código pode inferir quehidden="false"
isso teria o efeito oposto, o que é simplesmente incorreto.aria-hidden
, por outro lado, é um atributo enumerado , permitindo um de uma lista finita de valores. Se oaria-hidden
atributo estiver presente, seu valor deverá ser"true"
ou"false"
. Se você deseja o estado "indefinido (padrão)", remova o atributo completamente.Leitura adicional: https://github.com/chharvey/chharvey.github.io/wiki/Hidden-Content
fonte
definir aria-hidden como false e alterná-lo em element.show () funcionou para mim.
por exemplo
e quando se escondendo
fonte