Breadcrumb
- Uso
- Desenvolvimento
- Customização
#
Visão geralO componente breadcrumb
é um elemento de navegação secundário, que possibilita aos usuários que interagem com a interface identificar a localização atual na
aplicação, exibindo os níveis de hierarquias antecessoras conforme avança.
Também é possível utilizá-lo como método de navegação secundário para navegar aos demais níveis da hierarquia.
Este componente não têm como objetivo mostrar o histórico de acesso das páginas percorridas durante uma sessão na aplicação, como ao pressionar o botão Voltar nativo dos navegadores.
#
Quando usarUtilize-o para mostrar a estrutura hierárquica da aplicação no decorrer da navegação.
#
AnatomiaEstruturalmente, o breadcrumb
pode ser composto pelos seguintes elementos: level, collapse level, icon e current page, conforme imagem abaixo:
- Level (nível): é um elemento do tipo
link
, que exibe um ou mais níveis de páginas antecessoras, servindo também como meio de navegação; - Collapse level: é um elemento do tipo
icon
(more-vert), que exibe os níveis colpsados na forma delistbox
(mais detalhes em Comportamento); - Icon: é um elemento do tipo
icon
(arrow-right), que separa e indica o sentido da hierarquia entre os níveis; - Current page: é um elemento do tipo texto, que informa a página atual da aplicação.
As definições de estilo dos componentes que compõe o
breadcrumb
devem respeitar o tratamento em sua forma original.
#
ComportamentoO principal comportamento mapeado se relaciona a situações em que o espaço em tela é insuficiente para exibir todos os níveis da hierarquia,
seja pela quantidade e/ou tamanho de texto. Neste cenário, o breadcrumb
deve funcionar da seguinte maneira:
- Mantem o primeiro nível visível (página inicial);
- Mantem a página atual visível:
- Este nível é apenas informativo e não deve haver interação;
- Mantem o penúltimo nível visível:
- Este nível pode ser colpsado apenas em último casos, veja mais em Boas práticas;
- Colapsa os demais níveis:
- Quando acionado, deve exibir os níveis colapsados na forma de
listbox
.
- Quando acionado, deve exibir os níveis colapsados na forma de
As definições de comportamento dos componentes que compõe o
breadcrumb
devem respeitar o tratamento em sua forma original.
#
Navegação por mouse#
Clique no Collapse levelAo clicar no Collapse level, exibe o componente listbox
com item-list
do tipo ação, com os níveis colapsados:
#
Current page sem interaçãoA página atual não deve permitir interação:
#
Hover no levelOs comportamentos e estilos são os mesmo tratados no componente link
:
#
Click no levelOs comportamentos e estilos são os mesmo tratados no componente link
:
#
Navegação por tecladoA ordem de foco na navegação através da tecla tab avança entre todos os níveis, do primeiro até a página atual.
O acionamento ocorre através das teclas enter ou space, exceto a página atual que não deve conter interação.
No caso de haver níveis colapsados, a navegação ocorre da seguinte maneira:
- O primeiro nível recebe foco;
- O collapse level recebe foco:
- Se acionado, exibe o
listbox
, apresentando os níveis colapsados e focando o primeiroitem-list
;- Pressione as setas (cima e baixo) para navegar entre os itens da lista;
- Pressione a tecla esc para fechar a lista, ou, tab duas vezes seguidas;
- Se acionado, exibe o
- O penúltimo nível recebe foco;
- A página atual recebe foco (somente para leitura).
Ao acionar via mouse ou teclado um determinado nível, deve redirecionar o contexto para a respectiva página.
#
Boas práticasForam estruturados os padrões de usabilidade para auxiliar na utilização do componente e garantir uma boa experiência aos usuários. Por isso, é muito importante que ao utilizar este componente, as pessoas que o projetarem devem levar em consideração os seguintes critérios:
#
Fazer- Utilizar para mostrar a hierarquia do site;
- Em aplicações não hierárquicas, utilize apenas se houver uma maneira de mostrar a relação da página atual com conceitos mais abstratos ou gerais:
- Ao permitir filtrar informações na interface de produtos especificando atributos, os níveis de navegação podem listar os atributos que foram selecionados até então:
Por exemplo, em um e-commerce de brinquedos:
Início > Meninas > 5-6 anos > Brincadeiras ao ar livre
- Ao permitir filtrar informações na interface de produtos especificando atributos, os níveis de navegação podem listar os atributos que foram selecionados até então:
- Utilizar como navegação secundária e nunca deve substituir a navegação primária ou local dentro de um contexto;
- Manter a utilização de ícones apenas como separadores e botões de ação (collapse level);
- Manter os níveis do
breadcrumb
em uma única linha; - Expor apenas a quantidade relevante de níveis:
- Como boa prática, utilize 4 níveis na hierarquia (incluindo o item raiz), pois facilita a rápida compreensão do contexto.
#
Não fazer- Não utilizar como histórico de navegação;
- Não utilizar para sites com hierarquias planas, que têm apenas 1 ou 2 níveis de profundidade, ou sites que são lineares em estruturas.
- Evite textos muito longos que possam dificultar o entendimento e causar quebra de linha no componente;
- Não utilizar ícones junto ao texto dos níveis:
- Como os links são distribuídos horizontalmente, os ícones interrompem o ritmo e a legibilidade da lista.
- Não utilizar com quebras de linha, pois interfere na compreensão da hierarquia;
- Não utilizar textos muito curtos:
- A área de toque de 1x1cm deve ser preservada para dispositivos sensíveis ao toque;
- Não expor muitos níveis:
- Embora ainda tenham acesso fácil a quaisquer níveis colpsados, o excesso de níveis pode oprimir os usuários.
#
Acessibilidade tratada no componenteO componente breadcrumb
foi projetado para atender os requisitos das Diretrizes de Acessibilidade para Conteúdo Web (WCAG) 2.1.
Algumas diretrizes de acessibilidade já são tratadas no componente internamente e não devem ser alteradas por quem utilizar. São elas:
- Seja qual for o método de interação, a apresentação das informações na tela sempre deverá ter uma sequência lógica. Conteúdos responsivos não devem impactar o entendimento da informação independentemente do tamanho da tela (1.3.2: Meaningful Sequence (A));
- As cores não devem ser utilizadas como única maneira de distinguir elementos visuais (1.4.1: Use of Color (A));
- Uso de medidas relativas, para permitir zoom de até 200%, sem perda do conteúdo ou da funcionalidade (1.4.4: Resize Text (A));
- Relação de contraste de 7:1 entre texto e plano de fundo (1.4.6: Contrast (Enhanced) (AAA));
- Outros elementos da interface (não-textuais) devem ter relação de contraste de 3:1 (1.4.11: Non-text Contrast (AA));
- Permitir a interação com teclado (2.4.1: Keyboard (A));
- Os componentes recebem o foco em uma ordem que preserva o significado e a operabilidade (2.4.3: Focus Order (A));
- Manter o foco visível na navegação via teclado (2.4.7: Focus Visible (A)).