HTML e CSS desenvolveram um certo grau de flexibilidade, o que significa que mesmo elementos "bloco" conceitualmente como <div>
(a forma mais antiga e mais geral de conteúdo de blocos em HTML) não precisam ser exibidos como blocos:
div { display: inline; }
Como você observa, <div>
pode ser redirecionado para emular <table>
e seus companheiros de viagem. Na verdade, a maioria das tags pode. Dado seus papéis especiais, duvido que você poderia ser útil remapear etiquetas macro como <html>
, <head>
, <body>
, e <script>
, mas tags "comuns", como <div>
, <p>
, <b>
, <em>
, <span>
, e <pre>
? Em disputa. Faça os blocos de tags inline, os blocos inline, os tags pré-formatados fluírem, os estacionários flutuarem. Enlouqueça, se quiser!
É possível . Você pode querer discutir sobre como todos devemos usar a "marcação semântica" blá blá blá , ou acreditar com os pythonistas que "deve haver uma - e preferencialmente apenas uma - maneira óbvia de fazer isso". No entanto, Tim Toady é um cara inteligente e curioso. Dada a mão livre, ele explorará todos eles. Isso inclui o uso da flexibilidade disponível para fazer substituições. Alguns são sábios, outros serão provados de outra maneira. Mas tentativa, erro e experiência são a única maneira de descobrir isso. Portanto, as condições suficientes para substituição estão presentes.
Não acho exagero dizer que a substituição também é necessária. No mínimo, é extremamente conveniente . Por um longo tempo, HTML não têm <menu>
, <section>
ou <aside>
elementos. No entanto, páginas da web e aplicativos em todos os lugares têm menus, seções e barras laterais. Quão? Porque os elementos da lista HTML ( <ul>
, <ol>
e <li>
) foram facilmente reaproveitado e alguns usos re-classificada como recipientes de menu e peças. <div>
poderia substituir <article>
, <section>
, <aside>
, <figure>
, e <summary>
. O HTML5 atualizou e adicionou elementos sob medida para alguns casos de uso não endereçados anteriormente. É uma ótima atualização e correção para acomodar o uso comum no mundo real.
Mesmo assim, existem muitos idiomas comuns que não possuem tags ou modelos semânticos personalizados . Coisas como páginas, notas de rodapé, aspas, fluxos de comentários, avatares associados, "curtidas", subtítulos e legendas que eu e muitos outros usamos todos os dias. O que devemos fazer? O que nós podemos. Reaproveite elementos "próximos, mas inexatos", com classes e IDs, para apoiar e apoiar nosso trabalho pelos próximos cinco ou dez ou, no entanto, muitos anos até que o HTML6 ou o HTML7 os atualizem. Em teoria, o HTML / CSS "sim, é um X, mas vamos marcá-lo e trabalhar com ele como um Y" é incrivelmente conveniente. Indispensável, realmente. Isso torna o conteúdo da Web flexível e não quebradiço.
Indo além, a "marcação semântica" tem limitações irredutíveis . Isso vale para qualquer tipo de estrutura rigorosa que você possa imaginar para o conteúdo.
Os formatos padrão não podem abranger toda a riqueza de necessidades, desejos e variedades humanas. Eles sempre estarão "atrás da curva" do que as pessoas estão fazendo agora . Como eles estão inovando. Heck, o HTML5 ainda está atrás da curva em notas de rodapé, subtítulos e outras inovações de impressão do século XVII. Faltam recursos essenciais para muitos profissionais da informação e criadores de conteúdo. Então, improvisamos.
Ainda mais imutável é que as informações não cumprem um conjunto de regras. Claro, começa como uma mesa. Mas talvez você queira apenas o resumo - diga o título de cada linha, como uma lista. Talvez ocupe muito espaço e você queira que seja uma lista inline que economiza espaço. Talvez você tenha registros dos quais deseja apenas o título e, se clicar, verá os detalhes subjacentes. Ou você deseja que os itens de uma lista ou tabela complexa sejam agrupados e categorizados. Ah, agora você quer que ela seja transposta e categorizada de uma maneira diferente. Ou os valores plotados como um gráfico de barras. Isso é feito todos os dias em aplicativos, planilhas e visualização de dados. Eles são parte integrante do nosso cenário de informações e o que queremos e precisamos fazer na Web. Os seres humanos constantemente reorganizam a forma e a apresentação de nossos dados. Não é apenas uma coisa, ou um formato / layout, ou um conceito. É fungível, com a semântica dependendo da circunstância e das escolhas que os usuários fazem de maneira interativa. Sim, marque o texto como "enfatizado" (<em>
), mas isso é apenas uma convenção. Eu trabalhei em documentos com pelo menos meia dúzia de tipos diferentes de "ênfase". Nós precisamos ser capazes de personalizar e remapear que para diferentes usos, diferentes interpretações. Um tipo de ênfase em HTML? Excruciante reducionista. Limitando. Frágil. O mesmo é verdadeiro para <table>
, <p>
, etc.
É ótimo ter tags / elementos que ajudem a organizar o pensamento de toda a comunidade sobre "o que vai aonde". Isso ajuda a estabelecer convenções e idiomas e nos torna coletivamente mais eficientes. Mas a capacidade de remapear as coisas, redesenhar e reorientar essas estruturas? Isso faz parte da inclusão e do sucesso da Web.