De uma web de documentos a uma web de aplicações
HTML e CSS não são linguagens de programação de verdade
HTML
CSS
Devem ser ativados com clique, Enter ou Espaço
Quando ativados, onclick
é chamado
Devem anunciar que tem papel de button
(role="button"
) por padrão
role="link"
Botões podem ser desabilitados com disabled
Ah, mas é difícil de estilizar!
all: unset
Dados do Can I Use:
Devem impedir interação com elementos fora do diálogo
esc
Modais devem estar sempre no topo
z-index
! 🎉role="dialog"
por padrão::backdrop
)A funcionalidade primária da Web, base do PageRank e do resto do SEO moderno
Atalhos de teclado e opções no menu contextual permitem:
rel
target
download
input
, select
...) são difíceis de estilizardetails
, o accordion ou disclosure nativo, é difícil de animarPara mais informações sobre como estilizar controles de formulário nos principais navegadores, veja Inclusive Considerations When Restyling Form Controls
<section>, <header>, <footer>, <nav>, <main>, <aside>, <article>, <address> e <h1> a <h6>
Permitem que programas identifiquem o propósito e conteúdo de diferentes partes da página, alavancando SEO e funcionalidades como modos de leitura
São <div> com significados especiais (exceto os cabeçalhos)
type
apropriadoPara saber mais, confiram o MDN e o HTML Reference
<!-- prettier-ignore -->
<header itemprop="author publisher" itemtype="schema.org/Organization" itemscope>
<h1 itemprop="name">
<a itemprop="url" href="https://tabajara.net">
Organizações Tabajara
</a>
</h1>
</header>
Como uma plataforma aberta e universal, dispositivos do futuro vão acessar a web.
Quais serão eles e como eles vão acessar?
Nas plataformas do futuro:
I didn’t choose to use <article> and itemprop and input types because I wanted to support the Apple Watch; I did it before the Apple Watch existed, in order that my code is future-proof. By choosing the right semantics now, a machine that I don’t know about yet can understand my content and display it in the best way for its users.
Bruce Lawson em 'The practical value of semantic HTML'
when a HTML component sets the hidden={true} property, React will automatically change the priority of this subtree so that it won’t be part of the initial render. The idea is to e.g have a tab component that can render out every window in advance so switching tabs is super fast but it only needs to display the first tab’s content in the initial render so the hidden tabs can be deprioritized.
Do repositório sobre Concurrent React, página sobre hidden={true}
Nem todos acessam seu site:
A partir de um navegador
A partir de um computador, celular ou tablet
Visualmente
Diretamente
Acessibilidade é essencial para que pessoas com deficiência tenham acesso,
mas beneficia a todos
Alguns não usam o mouse por causa de uma deficiência
Alguns não enxergam bem
Alguns desativam JavaScript por paranoia
Alguns tem dificuldades cognitivas
Artigos
Referências