Essential tags, attributes, and semantic elements.
<!DOCTYPE html><!DOCTYPE html><html lang="en"><html lang="en"><html lang="hi"> for Hindi<meta charset="UTF-8"><meta charset="UTF-8"><meta name="viewport"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="description" content="Learn coding at EzyCoders"><meta property="og:..."><meta property="og:title" content="My Page"><link rel="canonical"><link rel="canonical" href="https://example.com/page"><base href="..."><base href="https://example.com/"><header><header><h1>Site Logo</h1><nav>...</nav></header><nav><nav aria-label="Main"><ul><li><a href="/">Home</a></li></ul></nav><main><main id="content">...unique content...</main><article><article><h2>Post Title</h2><p>Content...</p></article><section><section><h2>Contact</h2>...</section><aside><aside><h3>Related Posts</h3><ul>...</ul></aside><footer><footer><p>© 2024 EzyCoders</p></footer><address><address><a href="mailto:hi@site.com">hi@site.com</a></address><h1>–<h6><h1>Page Title</h1><h2>Section</h2><p><p>This is a paragraph of text.</p><strong> / <b><strong>Warning:</strong> This will delete data.<em> / <i>The word <i lang="la">et cetera</i> means "and so on".<mark>Search found <mark>JavaScript</mark> in 5 results.<time datetime="..."><time datetime="2024-01-15T09:00">Jan 15th</time><abbr title="..."><abbr title="HyperText Markup Language">HTML</abbr><sup> / <sub>E=mc<sup>2</sup>, H<sub>2</sub>O<ul> / <ol> / <li><ol start="5" type="A"><li>Item F</li></ol><dl>, <dt>, <dd><dl><dt>API</dt><dd>Application Programming Interface</dd></dl><table>, <thead>, <tbody><table><thead><tr><th scope="col">Name</th></tr></thead></table><th scope="col|row"><th scope="colgroup" colspan="2">Q1 Results</th>colspan / rowspan<td colspan="3">Spans 3 columns</td><caption><caption>Monthly Revenue by Region</caption><colgroup> / <col><colgroup><col style="width:30%"><col span="2"></colgroup><form action method><form action="/submit" method="POST" novalidate><input type="..."><input type="email" required autocomplete="email"><label for="id"><label for="email">Email</label><input id="email" type="email"><fieldset> / <legend><fieldset><legend>Delivery Address</legend>...</fieldset><datalist id="..."><input list="langs"><datalist id="langs"><option value="Python"></datalist>required / pattern / minlength<input pattern="[A-Z]{3}" minlength="3" maxlength="3" required>autocomplete="..."<input type="password" autocomplete="new-password"><output><output for="a b" name="result">0</output><img src alt loading><img src="hero.webp" alt="Team photo" loading="lazy" decoding="async"><picture> / <source><picture><source type="image/avif" srcset="img.avif"><img src="img.jpg" alt="..."></picture>srcset + sizes<img srcset="s.jpg 480w, l.jpg 1024w" sizes="(max-width:600px) 480px, 1024px" src="l.jpg" alt=""><video controls preload><video controls muted loop preload="none"><source src="v.mp4" type="video/mp4"></video><audio controls><audio controls><source src="bg.ogg" type="audio/ogg"><source src="bg.mp3"></audio><track kind="captions"><track src="captions.vtt" kind="captions" srclang="en" label="English" default><iframe sandbox allow><iframe src="..." sandbox="allow-scripts" loading="lazy"></iframe><canvas><canvas id="c" width="800" height="400">Fallback text</canvas>role="..."<div role="alert" aria-live="assertive">Error!</div>aria-label / aria-labelledby<button aria-label="Close modal">×</button>aria-hidden="true"<i class="fas fa-star" aria-hidden="true"></i> 4.5 starsaria-expanded / aria-controls<button aria-expanded="false" aria-controls="menu">Toggle</button>aria-live="polite|assertive"<div aria-live="polite" id="status"></div> // update via JStabindex="0|-1"<div role="button" tabindex="0" onkeydown="...">Custom Button</div>Skip navigation link<a href="#main" class="skip-link">Skip to main content</a><details> / <summary><details><summary>Show more</summary><p>Hidden content</p></details><dialog>document.querySelector('dialog').showModal();<template>const t = document.getElementById('tpl'); document.body.appendChild(t.content.cloneNode(true));<slot><my-card><span slot="title">Hello</span></my-card><script type="module"><script type="module" src="app.js"></script><link rel="preload"><link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin><meta http-equiv="CSP"><meta http-equiv="Content-Security-Policy" content="default-src 'self'">data-* attributes<button data-user-id="42" data-action="delete"> → el.dataset.userId