1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
|
---
title: Seções e estrutura de um documento HTML5
slug: Sections_and_Outlines_of_an_HTML5_document
translation_of: Web/Guide/HTML/Using_HTML_sections_and_outlines
---
<div class="warning">
<p><strong>Importante</strong>: Atualmente não há implementações conhecidas do algorítmo de estrutura em navegadores gráficos ou <em>user agents</em> de tecnologia assistiva, apesar disso o algorítmo é implementado em outro software como em verificadores de conformidade. Assim, ao algorítmo de estrutura não pode ser confiada a entrega da estrutura do documento para os usuários. Autores são aconselhados a usar níveis de cabeçalho (h1-h6) para transmitir a estrutura do documento.</p>
</div>
<p>A especificação HTML5 traz diversos novos elementos aos desenvolvedores web, permitindo-os descrever a estrutura de um documento web com semânticas padronizadas. Este documento descreve esses elementos e como utilizá-los para definir a estrutura desejada para qualquer documento.</p>
<h2 id="Estrutura_de_um_documento_em_HTML4">Estrutura de um documento em HTML4</h2>
<p>A estrutura de um documento, ou seja, a estrutura semântica do que está entre <span style="font-family: courier new;"><body></span> e <span style="font-family: courier new;"></body></span>, é fundamental para a apresentação da página ao usuário. O HTML4 usa a noção de seções e subseções de um documento para descrever sua estrutura. Uma seção é definida por um Elemento HTML de Divisão ({{ HTMLElement("div") }}) com Elementos HTML de Cabeçalho ({{ HTMLElement("h1") }}, {{ HTMLElement("h2") }}, {{ HTMLElement("h3") }}, {{ HTMLElement("h4") }}, {{ HTMLElement("h5") }}, ou {{ HTMLElement("h6") }}) dentro de si, definindo seu título. As relações desses elementos levam à estrutura do documento.</p>
<p>Então a seguinte marcação:</p>
<pre class="brush: html notranslate"><div class="section" id="elefantes-da-floresta" >
<h1>Elefantes da floresta</h1>
<p>Nesta seção, discutiremos os poucos conhecidos elefantes da floresta.
<em>...esta seção continua...</em>
<div class="subsection" id="floresta-habitat">
<h2>Habitat</h2>
<p>Os elefantes da floresta não vivem em árvores mas sim entre elas.
<em>...esta subseção continua...</em>
</div>
</div>
</pre>
<p>leva à seguinte estrutura (sem os marcadores 1. e 1.1 de nível) :</p>
<pre class="notranslate">1. Elefantes da floresta
1.1 Habitat
</pre>
<p>Os elementos {{ HTMLElement("div") }} não são obrigatórios para definir uma nova seção. A mera presença de um Elemento de Cabeçalho HTML é suficiente para implicar uma nova seção. Portanto,</p>
<pre class="brush: html notranslate"><h1>Elefantes da floresta</h1>
<p>Nesta seção, discutiremos os pouco conhecidos elefantes da floresta.
<em>...esta seção continua...</em>
<h2>Habitat</h2>
<p>Os elefantes da floresta não vivem em árvores mas sim entre elas.
<em>...esta subseção continua...</em>
<h2>Dieta</h2>
<h1>Esquilo da mongólia</h1>
</pre>
<p>leva à:</p>
<pre class="notranslate">1. Elefantes da floresta
1.1 Habitat
1.2 Dieta
2. Esquilo da mongólia
</pre>
<h2 id="Problemas_resolvidos_pelo_HTML5">Problemas resolvidos pelo HTML5</h2>
<p>A definição HTML 4 da estrutura de um documento e seu algoritmo de estruturação implícita é muito irregular e leva a inúmeros problemas:</p>
<ol>
<li>O uso do {{HTMLElement("div")}} para definir seções semânticas, sem definir valores específicos para o atributo <strong>class</strong> torna a automação do algoritmo de saída inviável ("Este{{HTMLElement("div")}}é parte da estrutura da página, definindo uma seção ou uma subsseção?" ou "é apenas um {{HTMLElement("div")}} representativo, usado apenas para definição de estilo?"). Em outras palavras, a perspectiva do HTML4 é muito imprecisa em relação a o que é uma seção e como seu escopo é definido. Geração automática de estrutura é importante, especialmente para <a href="https://pt.wikipedia.org/wiki/Tecnologia_assistiva">tecnologias assistivas</a>, que são apropriadas para adaptar a forma de apresentação da informação para os usuários de acordo com a estrutura do documento. O HTML5 elimina a necessidade dos elementos {{HTMLElement("div")}} do algoritmo de estruturação introduzindo um novo elemento, O {{HTMLElement("section")}}, o elemento de Seção do HTML. </li>
<li>Mesclar diversos documentos é uma tarefa complicada: a inclusão de um subdocumento em um documento principal significa pequenas alterações nos <a href="https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/Heading_Elements">elementos de cabeçalho</a> de modo que a estrutura geral do novo documento continue sólida. Isso é resolvido no HTML5 com a introdução dos elementos de seção ({{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("nav")}} e {{HTMLElement("aside")}}), que são sempre subseções das seções ancestrais mais próximas, independentemente das seções criadas pelos elementos de cabeçalhos internos de cada subseção.</li>
<li>No HTML4, toda seção é parte da estrutura do documento. Mas documentos não lineares são frequentes. Um documento pode ter seções especiais contendo informações que não fazem parte, a não ser que seja relatado, do conteúdo principal, como um bloco de avisos ou uma caixa de explicação. O HTML5 introduz o elemento {{HTMLElement("aside")}}, permitindo assim que tal seção não seja parte da estrutura principal do documento.</li>
<li>Novamente, no HTML4 pelo fato de todas as seções semânticas com a tag {{HTMLElement("div")}} fazerem parte da estrutura do documento, não há formas de haver seções que contenham informações relacionadas não ao documento em si, mas ao site no geral, como logos, menus, tabelas de conteúdos, copyright ou avisos legais. Com esse propósito, o HTML5 introduz três novos elementos: {{HTMLElement("nav")}} para coleções de links (tal como uma tabela de conteúdos), {{HTMLElement("footer")}} e {{HTMLElement("header")}} para informações relacionadas ao site. Perceba que {{HTMLElement("footer")}} e {{HTMLElement("header")}} não são conteúdos de seção como o {{HTMLElement("section")}}, ao invés disso, eles existem para delimitar semanticamente partes de uma seção.</li>
</ol>
<h2 id="sect1"></h2>
<p>Resumindo, o HTML5 traz precisão às divisões do documento em seções e aos recursos de cabeçalho, permitindo que a estrutura seja previsível e possa ser usada para melhorar a experiência do usuário.</p>
<h2 id="The_HTML5_Outline_Algorithm">The HTML5 Outline Algorithm</h2>
<h3 id="Definindo_seções_em_HTML5">Definindo seções em HTML5</h3>
<p>Todo conteúdo que está dentro do elemento {{ HTMLElement("body") }} é parte de uma seção. Seções em HTML5 podem ser encaixadas(aninhadas). Com base na seção principal, definida pelo elemento {{ HTMLElement("body") }}, section os limites são definidos tanto explicitamente ou implicitamente. Explicitly-defined sections are the content within {{ HTMLElement("body") }}, {{ HTMLElement("section") }}, {{ HTMLElement("article") }}, {{ HTMLElement("aside") }}, {{ HTMLElement("footer") }}, {{ HTMLElement("header") }}, and {{ HTMLElement("nav") }} tags. </p>
<div class="note"><strong>Nota: </strong>Cada seção pode ter sua própria hierarquia de cabeçalho {{ HTMLElement("h1") }}. Veja <a href="/en/Sections_and_Outlines_of_an_HTML5_document#Defining_Headings_in_HTML5" title="en/Sections_and_Outlines_of_an_HTML5_document#Defining_Headings_in_HTML5">D</a><a href="/en/Sections_and_Outlines_of_an_HTML5_document#Defining_Headings_in_HTML5">efinindo cabeçalhos com HTML5</a>.</div>
<p>Exemplo:</p>
<pre class="brush: html notranslate"><section>
<h1>Elefantes da floresta</h1>
<section>
<h1>Introdução</h1>
<p>Nesta seção, nós discutimos os menores elefantes florestais conhecidos.<p>
</section>
<section>
<h1><span><span>Habitat</span><span></</span><span>h1</span><span>>
</span></span><span><span><</span><span>P</span><span>></span><span>Elefantes florestais não vivem em árvores mas entre eles.</p>
</section>
<aside>
<p>Bloco publicitário</p>
</aside>
</section>
<footer>
<p>(c) 2010 O Exemplo de empresa</p>
</footer></span></span>
</pre>
<p>Esse <a href="https://tableless.com.br/produtividade-editores-e-snippets/">snippet</a> HTML define duas seções de nível superior:</p>
<pre class="brush: html notranslate"><span> <section>
<h1> Elefantes da floresta </h1>
<section>
<h1> Introdução </h1>
<p> Nesta seção, discutiremos os elefantes da floresta menos conhecidos.</p>
</section>
<section>
<h1> Habitat </h1>
<p>Os elefantes da floresta não vivem em árvores, mas entre eles.</p>
</section>
<aside>
<p> bloco de publicidade</p>
</aside>
</section>
<footer>
<p> (c) 2010 A empresa exemplo</p>
</footer></span></pre>
<p>A primeira seção possui três subseções:</p>
<pre class="brush: html notranslate"><span><section>
<h1>Forest elephants</h1>
</span><span> <section>
<h1>Introduction</h1>
<p>In this section, we discuss the lesser known forest elephants.
</section>
</span><span> <section>
<h1><span><span>Habitat</span><span></</span><span>h1</span><span>>
</span></span><span><span><</span><span>P</span><span>></span><span>Forest elephants do not live in trees but among them.
</section>
</span><span> <aside>
<p>advertising block
</aside>
</span><span></section>
<footer>
<p>(c) 2010 The Example company
</footer></span></span></span></pre>
<p>Isso leva à seguinte estrutura:</p>
<pre class="notranslate">1. Forest elephants
1.1 Introduction
1.2 Habitat
1.3 Section (aside)
</pre>
<h3 id="Definindo_cabeçalho_com_HTML5">Definindo cabeçalho com HTML5</h3>
<p>Enquanto os elementos de corte em HTML definem a estrutura do documento, um esboço também precisa de títulos para ser útil. A regra básica é simples: o primeiro elemento de cabeçalho HTML (um de {{HTMLElement ("h1")}}, {{HTMLElement ("h2")}}, {{HTMLElement ("h3")}}, {{HTMLElement ("h4")}}, {{HTMLElement ("h5")}}, {{HTMLElement ("h6")}}) define o cabeçalho da seção atual.</p>
<p>Os elementos de cabeçalho têm uma classificação fornecida pelo número no nome do elemento, onde {{HTMLElement ("h1")}} tem a classificação mais alta e {{HTMLElement ("h6")}}} tem a classificação mais baixa. A classificação relativa é importante apenas dentro de uma seção; a estrutura das seções determina o contorno, não a classificação do cabeçalho das seções. Por exemplo, este código:</p>
<pre class="brush: html notranslate"><section>
<h1>Forest elephants</h1>
<p>In this section, we discuss the lesser known forest elephants.
<span> </span><em>...this section continues...</em>
<section>
<h2>Habitat</h2>
<p>Forest elephants do not live in trees but among them.
<span> </span><em>...this subsection continues...</em>
</section>
</section>
<section>
<h3>Mongolian gerbils</h3>
<p>In this section, we discuss the famous mongolian gerbils.
<span> </span><em>...this section continues...</em>
</section>
</pre>
<p>leva ao seguinte esboço:</p>
<pre class="notranslate">1. Elefantes da floresta
1.1 Habitat
2. Gerbos da Mongólia</pre>
<p>Observe que a classificação do elemento de cabeçalho (no exemplo {{HTMLElement ("h1")}}} para a primeira seção de nível superior, {{HTMLElement ("h2")}} para a subseção e {{HTMLElement ("h3 ")}} para a segunda seção de nível superior) não é importante. (Qualquer classificação pode ser usada como cabeçalho de uma seção definida explicitamente, embora essa prática não seja recomendada.)</p>
<h3 id="Seção_implícita">Seção implícita</h3>
<p>Como os Elementos de Seção HTML5 não são obrigatórios para definir um esboço, para manter a compatibilidade com a Web existente dominada pelo HTML4, existe uma maneira de definir seções sem eles. Isso é chamado de corte implícito.</p>
<p>Os elementos de cabeçalhos HTML ({{HTMLElement ("h1")}} a {{HTMLElement ("h6")}}) definem uma nova seção implícita quando eles não são o primeiro cabeçalho de suas seções pai, explícitas. A maneira como esta seção implícita é posicionada no contorno é definida por sua classificação relativa com o cabeçalho anterior na seção pai. Se tiver uma classificação inferior à do título do cabeçalho anterior, abrirá uma subseção implícita da seção. Este código:</p>
<pre class="brush: html notranslate"><section>
<h1> Elefantes da floresta </h1>
<p> Nesta seção, discutiremos os elefantes da floresta menos conhecidos.
... esta seção continua ...
<h3 class = "subseção implícita"> Habitat </h3>
<p>Os elefantes da floresta não vivem em árvores, mas entre elas.
... esta subseção continua ...</p>
</section>
</pre>
<p>levando ao seguinte esboço:</p>
<pre class="notranslate">1. Elefantes da floresta
1.1 Habitat (definido implicitamente pelo elemento h3)
</pre>
<p>Se for da mesma classificação que o título do cabeçalho anterior, fecha a seção anterior (que pode ter sido explícita!) e abre uma nova implícita no mesmo nível:</p>
<pre class="brush: html notranslate"><section>
<h1> Elefantes da floresta </h1>
<p> Nesta seção, discutiremos os elefantes da floresta menos conhecidos.
... esta seção continua ...
<h1 class = "seção implícita"> Gerbos da Mongólia </h1>
<p>Os gerbos da Mongólia são pequenos mamíferos fofos.
... esta seção continua ...</p>
</section>
</pre>
<p>levando ao seguinte esboço:</p>
<pre class="notranslate">1. Elefantes da floresta
2. Gerbos da Mongólia (implicitamente definidos pelo elemento h1, que fechou a seção anterior ao mesmo tempo)
</pre>
<p>Se tiver uma classificação mais alta que o título do cabeçalho anterior, fecha a seção anterior e abre uma nova implícita no nível mais alto:</p>
<pre class="brush: html notranslate"><body>
<h1> Mamíferos </h1>
<h2> Baleias </h2>
<p> Nesta seção, discutimos as baleias nadadoras.
... esta seção continua ...</p>
<section>
<h3> Elefantes da floresta </h3>
<p> Nesta seção, discutiremos os elefantes da floresta menos conhecidos.
... esta seção continua ...</p>
<h3> Gerbos da Mongólia </h3>
<p> Hordas de gerbos se espalharam muito além da Mongólia.
... esta subseção continua ...</p>
<h2> Répteis </h2>
<p>Répteis são animais com sangue frio.
... esta subseção continua ...</p>
</section>
</body>
</pre>
<p>levando ao seguinte esboço:</p>
<pre class="notranslate">1. Mamíferos
1.1 Baleias (definidos implicitamente pelo elemento h2)
1.2 Elefantes da floresta (definidos explicitamente pelo elemento de seção)
1.3 Gerbos da Mongólia (implicitamente definidos pelo elemento h3, que fecha a seção anterior ao mesmo tempo)
1.4 Répteis (definidos implicitamente pelo elemento h2, que fecha a seção anterior ao mesmo tempo)
</pre>
<p>Este não é o esquema que se pode esperar olhando rapidamente para as tags de cabeçalho. Para tornar sua marcação compreensível por humanos, é uma boa prática usar tags explícitas para abrir e fechar seções e corresponder a classificação do cabeçalho ao nível de aninhamento de seção pretendido. No entanto, isso não é exigido pela especificação do HTML5. Se você achar que os navegadores estão processando o esboço do documento de maneiras inesperadas, verifique se há seções que estão implicitamente fechadas pelos elementos de cabeçalho.</p>
<p>Uma exceção à regra geral de que a classificação do cabeçalho deve corresponder ao nível de aninhamento de seção é para seções que podem ser reutilizadas em vários documentos. Por exemplo, uma seção pode ser armazenada em um CMS (Content Management System) e montada em documentos em tempo de execução. Nesse caso, uma boa prática é começar em {{HTMLElement ("h1")}} para o nível de cabeçalho superior da seção reutilizável. O nível de aninhamento da seção reutilizável será determinado pela hierarquia da seção do documento em que ela aparece. Tags de seção explícitas ainda são úteis nesse caso.</p>
<h3 id="Sobrepondo_seções_implícitas">Sobrepondo seções implícitas</h3>
<p> Às vezes, uma seção precisa ter vários títulos. Alguns casos comuns são:</p>
<ul>
<li>uma seção sobre um livro ou filme que possui um título secundário:
<pre class="brush: html notranslate"><section>
<h1> Justine </h1>
<h2> Os Infortúnios da Virtude </h2>
</section></pre>
<p>leva ao seguinte esboço:</p>
<pre class="notranslate">1. Justine
1.1 Os Infortúnios da Virtude
</pre>
</li>
<li>o cabeçalho secundário pode ser usado para uma lista de tags:
<pre class="brush: html notranslate"><section>
<h1> Seção e esboços de um documento </h1>
<h2> HTML, HTML5, seções, contornos </h2>
</section></pre>
<p>levando ao seguinte esboço:</p>
<pre class="notranslate">1. Seção e linhas gerais de um documento
1.1 HTML, HTML5, Seções, Esboços</pre>
</li>
</ul>
<p>Devido ao corte implícito, isso não é possível sem a ajuda do Elemento do Grupo de Cabeçalhos HTML ({{HTMLElement ("hgroup")}} introduzido no HTML5). Ele oculta todos os títulos de cabeçalhos do esboço, exceto o primeiro, permitindo uma substituição do corte implícito. Com esse elemento, o exemplo do livro secundário:</p>
<pre class="brush: html notranslate"><section>
<hgroup>
<h1>Justine</h1>
<h2>Les Malheurs de la vertu</h2>
</hgroup>
</section>
</pre>
<p>leads to the following outline:</p>
<pre class="notranslate">1. Justine
</pre>
<h3 id="Caminhos_de_seção"><a>Caminhos de seção</a></h3>
<p> Uma raiz de seção é um elemento HTML que pode ter seu próprio esboço, mas as seções e os títulos de cabeçalho dentro deles não contribuem para o esboço de seus ancestrais. Ao lado de {{HTMLElement ("body")}}, que é a raiz de seção lógica de um documento, geralmente são elementos que introduzem conteúdo externo na página: {{HTMLElement ("blockquote")}}, {{HTMLElement ("detalhes ")}}, {{HTMLElement (" fieldset ")}}, {{HTMLElement (" figura ")}} e {{HTMLElement (" td ")}}.</p>
<p>Exemplo:</p>
<pre class="brush: html notranslate"><section>
<h1> Elefantes da floresta </h1>
<section>
<h2> Introdução </h2>
<p> Nesta seção, discutiremos os elefantes da floresta menos conhecidos</p>
</section>
<section>
<h2> Habitat </h2>
<p>Os elefantes da floresta não vivem em árvores, mas entre eles. Vamos
veja o que os cientistas estão dizendo em "<cite> O elefante da floresta em Bornéu </cite>":
<blockquote>
<h1> Bornéu</h1>
<p> O elemento florestal vive em Bornéu ...</p>
</blockquote>
</section>
</section>
</pre>
<p>Este exemplo resulta no seguinte esboço:</p>
<pre class="notranslate">1. Elefantes da floresta
1.1 Introdução
1.2 Habitat
</pre>
<p>Este esboço não contém o esboço interno do elemento {{HTMLElement ("blockquote")}}, que, sendo uma citação externa, é uma raiz de seção e isola seu esboço interno.</p>
<h3 id="Seções_de_fora_da_estrutura">Seções de fora da estrutura</h3>
<p>O HTML5 apresenta quatro novos elementos que permitem definir seções que não pertencem ao esquema principal de um documento da web:</p>
<ol>
<li>O elemento HTML Aside Section ({{HTMLElement ("apart")}})) define uma seção que, embora relacionada ao elemento principal, não pertence ao fluxo principal, como uma caixa de explicação ou um anúncio. Ele tem seu próprio esboço, mas não pertence ao principal.</li>
<li>O elemento de seção de navegação HTML ({{HTMLElement ("nav")}}) define uma seção que contém links de navegação. Pode haver vários deles em um documento, por exemplo, um com links internos da página, como uma tabela de conteúdo, e outro com links de navegação no site. Esses links não fazem parte do fluxo e estrutura de tópicos principais e geralmente não podem ser renderizados inicialmente pelo leitor de tela e tecnologia assistida semelhante.</li>
<li>O elemento da seção de cabeçalho HTML ({{HTMLElement ("header")}}) define um cabeçalho da página, geralmente contendo o logotipo e o nome do site e, possivelmente, um menu horizontal. Apesar do nome, ele não está necessariamente posicionado no início da página.</li>
<li>O elemento HTML da seção do rodapé ({{HTMLElement ("rodapé")}}) define um rodapé da página, normalmente contendo os direitos autorais e legais observados e algumas vezes alguns links. Apesar do nome, ele não está necessariamente posicionado na parte inferior da página.</li>
</ol>
<h2 id="Endereços_e_horário_de_publicação_nos_elementos_de_seção">Endereços e horário de publicação nos elementos de seção</h2>
<p>O autor de um documento geralmente deseja publicar algumas informações de contato, como o nome e o endereço do autor. O HTML4 permitiu isso por meio do elemento {{HTMLElement ("address")}}, que foi estendido no HTML5.</p>
<p>Um documento pode ser feito de seções diferentes de diferentes autores. Uma seção de outro autor que não a da página principal é definida usando o elemento {{HTMLElement ("article")}}. Consequentemente, o elemento {{HTMLElement ("address")}} agora está vinculado ao seu ancestral mais próximo {{HTMLElement ("body")}} ou {{HTMLElement ("article")}}.</p>
<p>Da mesma forma, o novo elemento HTML5 {{HTMLElement ("time")}}, com seu conjunto de atributos booleanos {{htmlattrxref ("pubdate", "time")}}, representa a data de publicação associada ao documento inteiro, respectivamente ao artigo, relacionado ao ancestral mais próximo {{HTMLElement ("body")}} ou {{HTMLElement ("article")}}.</p>
<h2 id="Usando_elementos_HTML5_em_navegadores_não-HTML5">Usando elementos HTML5 em navegadores não-HTML5</h2>
<p>Os elementos de seções e títulos devem funcionar na maioria dos navegadores não HTML5. Embora não sejam suportados, eles não precisam de uma interface <a href="https://developer.mozilla.org/pt-BR/docs/DOM/Referencia_do_DOM">DOM (Document Object Model)</a> especial e precisam apenas de um estilo CSS específico, pois elementos desconhecidos são estilizados como display: inline por padrão:</p>
<pre class="brush: css notranslate">section, article, aside, footer, header, nav, hgroup {
display:block;
}
</pre>
<p>É claro que o Desenvolvedor Web pode estilizá-los de maneira diferente, mas lembre-se de que em um navegador que não dar suporte ao HTML5, o estilo padrão é diferente do esperado para esses elementos. Observe também que o elemento {{HTMLElement ("time")}} não foi incluído, porque o estilo padrão para ele em um navegador que não suporta HTML5 é o mesmo que em um navegador compatível com HTML5.</p>
<p>Esse método tem sua limitação, pois alguns navegadores não permitem o estilo de elementos não suportados. Que é o caso do Internet Explorer (versão 8 e anterior), que precisa de um script específico para permitir isso:</p>
<pre class="brush: html notranslate"><!--[if lt IE 9]>
<script>
<code class="js">document.createElement(<span class="js__string">"header"</span> );
document.createElement(<span class="js__string">"footer" </span>);
document.createElement(<span class="js__string">"section"</span>);
document.createElement(<span class="js__string">"aside"</span> );
document.createElement(<span class="js__string">"nav"</span> );
document.createElement(<span class="js__string">"article"</span>);
document.createElement(<span class="js__string">"hgroup"</span> );
document.createElement(<span class="js__string">"time"</span> );
</script>
</code><code class="html"><span class="html__ie_style"><![endif]--></span></code>
</pre>
<p>Esse script significa que, no caso do Internet Explorer (8 e versões anteriores), o script deve ser ativado para exibir os elementos de seção e títulos do HTML5 corretamente. Caso contrário, eles não serão exibidos, o que pode ser problemático, pois esses elementos provavelmente definem a estrutura da página inteira. É por isso que um elemento explícito {{HTMLElement ("noscript")}} deve ser adicionado para este caso:</p>
<pre class="brush: html notranslate"><noscript>
<strong> Aviso! </strong>
Como o seu navegador não suporta HTML5, alguns elementos são simulados usando o JScript.
Infelizmente, seu navegador desativou o script. Ative-o para exibir esta página.
</noscript>
</pre>
<p>Isso leva ao código a seguir para permitir o suporte das seções e elementos dos cabeçalhos HTML5 em navegadores que não suportam HTML5, mesmo para o Internet Explorer (8 e versões anteriores), com um <strong>plano b</strong> adequado para o caso em que este último navegador está configurado para não usar scripts :</p>
<pre class="brush: html notranslate"><!--[if lt IE 9]>
<script>
<code class="js">document.createElement(<span class="js__string">"header"</span> );
document.createElement(<span class="js__string">"footer" </span>);
document.createElement(<span class="js__string">"section"</span>);
document.createElement(<span class="js__string">"aside"</span> );
document.createElement(<span class="js__string">"nav"</span> );
document.createElement(<span class="js__string">"article"</span>);
document.createElement(<span class="js__string">"hgroup"</span> );
document.createElement(<span class="js__string">"time"</span> );
</script></code>
<code class="html"><span class="html__ie_style"> <noscript>
<strong>Aviso !</strong>
Seu navegador web não suporta HTML5, e devido a isso alguns recursos são simulados usando JScript.
Infelizmente seu navegador desativou a execução de scripts. Por favor ative esse recurso para que esta página seja exibida corretamente.
</noscript></span></code>
<code class="html"><span class="html__ie_style"><![endif]-<span style="font-family: courier new,andale mono,monospace;">-<span style="font-family: monospace;">></span></span></span> </code>
</pre>
<h2 id="Conclusão">Conclusão</h2>
<p>Os novos elementos de seção e cabeçalho introduzidos no HTML5 trazem consigo a habilidade de descrever a estrutura de um documento web de modo padronizado. Eles trazem uma grande vantagem para pessoas com navegadores HTML5 e que precisam da estrutura para ajudá-las a entender a página, por exemplo pessoas que utilizam alguma tecnologia assistiva. Esses novos elementos semânticos são simples de usar e, com pouquíssimo trabalho, podem funcionar também em navegadores não-HTML5. Portanto eles devem ser utilizados sem restrição.</p>
<p>{{ HTML5ArticleTOC() }}</p>
<div class="noinclude">
<p>{{ languages( {"es": "/es/Secciones_y_esquema_de_un_documento_HTML_5", "ja": "ja/Sections_and_Outlines_of_an_HTML5_document"}) }}</p>
</div>
|