--- title: Semântica slug: Glossary/Semantics tags: - Codificação de Script - Glossário - HTML - semántica translation_of: Glossary/Semantics original_slug: Glossario/Semantica --- <p><span class="seoSummary">Na programação, a<strong> Semântica</strong> se refere ao <em>significado</em> de um trecho de código — por exemplo, "que efeito tem a execução dessa linha de JavaScript?", Ou "que finalidade ou função esse elemento HTML tem" (em vez de "como ele se parece?").</span></p> <h2 id="Semântica_em_JavaScript">Semântica em JavaScript</h2> <p>Em JavaScript, considere uma função que aceita um parâmetro de string e retorne um elemento {{htmlelement("li")}} com essa string como seu <code>textContent</code>. Você precisaria examinar o código para entender o que a função fazia se fosse chamada <code>build('Peach')</code>, ou <code>createLiWithContent('Peach')</code>?</p> <h2 id="Semântica_em_CSS">Semântica em CSS</h2> <p>No CSS, considere criar uma lista com elementos <code>li</code> representando diferentes tipos de frutas. Você saberia qual parte do DOM está sendo selecionada com <code>div > ul > li</code>, ou <code>.fruits__item</code>?</p> <h2 id="Semântica_em_HTML">Semântica em HTML</h2> <p>Em HTML, por exemplo, o {{htmlelement("h1")}} é um elemento semântico, que fornece o texto que envolve a representação (ou o significado) de "um cabeçalho de nível superior em sua página".</p> <pre class="brush: html"><h1>This is a top level heading</h1></pre> <p>Por padrão, a maioria das <a href="/en-US/docs/Web/CSS/Cascade#User-agent_stylesheets">folhas de estilo do agente do usuário</a> do navegador, estilizará um {{htmlelement("h1")}} com um tamanho de fonte grande para parecer um título (embora você possa estilizá-lo como quiser).</p> <p>Por outro lado, você pode fazer qualquer elemento parecer um cabeçalho de nível superior. Considere o seguinte:</p> <pre class="brush: html"><span style="font-size: 32px; margin: 21px 0;">Is this a top level heading?</span></pre> <p>Isso fará com que pareça um cabeçalho de nível superior, mas não tem valor semântico. Portanto, não obterá nenhum benefício extra, conforme descrito acima. Assim, é uma boa idéia usar o elemento HTML certo, para o trabalho certo.</p> <p>O HTML deve ser codificado para representar a data que será preenchida e não com base em seu estilo de apresentação padrão. A apresentação (como deve ser) é de responsabilidade exclusiva do <a href="/en-US/docs/Web/CSS">CSS</a>.</p> <p>Alguns dos benefícios de se escrever a marcação semântica:</p> <ul> <li>Os mecanismos de pesquisa considerarão seu conteúdo como palavras-chave importantes para influenciar os rankings de pesquisa da página (see {{glossary("SEO")}})</li> <li>Os leitores de tela podem usá-lo como uma placa de sinalização para ajudar usuários com deficiência visual a navegar em uma página</li> <li>Encontrar blocos de código importantes é significativamente mais fácil do que procurar <code>div</code>s sem fim, com ou sem classes de semântica ou de nome espaçado.</li> <li>Sugira ao desenvolvedor o tipo de dados que serão preenchidos</li> <li>A nomeação semântica reflete a nomeação adequada do elemento/componente personalizado</li> </ul> <p>Ao abordar qual marcação usar, pergunte a si mesmo: "Quais elementos melhor descrevem/representam os dados que vou preencher?" Por exemplo, é uma lista de dados? ordenado, não ordenado? é um artigo com seções e uma parte de informações relacionadas? lista as definições? é uma figura ou imagem que precisa de legenda? deve ter um cabeçalho e rodapé, além do cabeçalho e rodapé em todo o site? etc.</p> <h2 id="Elementos_semânticos">Elementos semânticos</h2> <p>Estes são alguns dos aproximadamente 100 <a href="/en-US/docs/Web/HTML/Element">elementos</a> semânticos disponíveis:</p> <ul> <li>{{htmlelement("article")}}</li> <li>{{htmlelement("aside")}}</li> <li>{{htmlelement("details")}}</li> <li>{{htmlelement("figcaption")}}</li> <li>{{htmlelement("figure")}}</li> <li>{{htmlelement("footer")}}</li> <li>{{htmlelement("header")}}</li> <li>{{htmlelement("main")}}</li> <li>{{htmlelement("mark")}}</li> <li>{{htmlelement("nav")}}</li> <li>{{htmlelement("section")}}</li> <li>{{htmlelement("summary")}}</li> <li>{{htmlelement("time")}}</li> </ul> <h2 id="Saiba_mais">Saiba mais</h2> <ul> <li><a href="/en-US/docs/Web/HTML/Element#Inline_text_semantics">HTML element reference</a> on MDN</li> <li><a href="/en-US/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines#Problems_solved_by_HTML5">Using HTML sections and outlines</a> on MDN</li> <li>{{interwiki("wikipedia", "Semantics#Computer_science", "The meaning of semantics in computer science")}} on Wikipedia</li> </ul> <section class="Quick_links" id="Quick_Links"> <ul> <li><a href="/en-US/docs/Glossary">MDN Web Docs Glossary</a> <ul> <li>{{Glossary("SEO")}}</li> </ul> </li> <li>Some of semantic elements in HTML <ul> <li>{{htmlelement("article")}}</li> <li>{{htmlelement("aside")}}</li> <li>{{htmlelement("details")}}</li> <li>{{htmlelement("figcaption")}}</li> <li>{{htmlelement("figure")}}</li> <li>{{htmlelement("footer")}}</li> <li>{{htmlelement("header")}}</li> <li>{{htmlelement("main")}}</li> <li>{{htmlelement("mark")}}</li> <li>{{htmlelement("nav")}}</li> <li>{{htmlelement("section")}}</li> <li>{{htmlelement("summary")}}</li> <li>{{htmlelement("time")}}</li> </ul> </li> </ul> </section>