Continuo a ver atributos de papéis em algumas pessoas's work. Eu também o uso, mas I'não tenho certeza sobre seu efeito.
Por exemplo:
<header id="header" role="banner">
Header stuff in here
</header>
Ou..:
<section id="facebook" role="contentinfo">
Facebook stuff in here
</section>
Ou..:
<section id="main" role="main">
Main content stuff in here
</section>
Este atributo de papel é necessário?
Este atributo é melhor para a semântica?
Melhora a SEO?
Uma lista de papéis pode ser encontrada aqui, mas vejo que algumas pessoas inventam os seus próprios. Isso é permitido ou um uso correto do atributo do papel?
Alguma ideia sobre isto?
A maioria dos papéis que você vê foram definidos como parte do ARIA 1.0, e mais tarde incorporados ao HTML5. Alguns dos novos elementos HTML5 (diálogo, principal, etc.) são mesmo baseados nos papéis originais do ARIA.
http://www.w3.org/TR/wai-aria/
Há duas razões principais para usar papéis além do seu elemento semântico nativo.
Por isso, a razão #1. Substituir o papel onde nenhum elemento da língua do hospedeiro é apropriado ou, por várias razões, um elemento menos apropriado semanticamente foi usado.
Neste exemplo, foi usado um link, embora a funcionalidade resultante seja mais parecida com um botão do que um link de navegação.
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
Os leitores de ecrã vão ouvir isto como um botão (em vez de um link), e pode usar um selector de atributos CSS para evitar class-itis e div-itis.
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
Porquê #2. Apoiar o papel de um elemento nativo, para apoiar navegadores que implementaram o papel ARIA mas ainda não implementaram o papel do elemento nativo.
Por exemplo, o papel "principal" tem sido suportado em navegadores por muitos anos, mas é uma adição relativamente recente ao HTML5, por isso muitos navegadores ainda não suportam a semântica para <main>
.
<main role="main">…</main>
Isto é tecnicamente redundante, mas ajuda alguns utilizadores e não prejudica nenhum. Dentro de alguns anos, esta técnica provavelmente se tornará desnecessária.
Você também escreveu:
Vejo que algumas pessoas fazem a sua própria. Isso é permitido ou um uso correto do atributo do papel?
Esse é um uso válido do atributo, a menos que um papel real não esteja incluído. Os navegadores aplicarão o primeiro papel reconhecido na lista de fichas.
<span role="foo link note bar">...</a>
Fora da lista, apenas "link" e "nota" são papéis válidos, e assim o papel de link será aplicado porque vem em primeiro lugar. Se você utiliza papéis personalizados, certifique-se de que eles não conflitam com nenhum papel definido no ARIA ou na linguagem do host que você está utilizando (HTML, SVG, MathML, etc.)
Pelo que entendi, os papéis foram inicialmente definidos pelo XHTML, mas foram depreciados. No entanto, agora eles são definidos pelo HTML 5, veja aqui: https://www.w3.org/WAI/PF/aria/roles#abstract_roles_header
O objetivo do atributo de função é identificar ao software de análise a função exata de um elemento (e seus filhos) como parte de uma aplicação web. Isto é principalmente como uma coisa de acessibilidade para leitores de tela, mas também posso vê-lo como sendo útil para navegadores embutidos e raspadores de tela. Para ser útil para o cliente HTML incomum, o atributo precisa ser definido para um dos papéis da especificação que eu liguei. Se você criar a sua própria, esta funcionalidade 'futura' não pode funcionar - um comentário seria melhor.
Praticidades aqui: http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/
Este atributo de papel é necessário?
Responda: **Sim***.
Ele fornece-te: