Meta tags
All pages should have meta tags.
If empty metatags, make sure to get the root item. Root item should never be empty
Images
All images MUST have alt tags.
Inputs
Make sure that there is always space to click with a finger and the entire input+label is clickable
<input type=“checkbox“ id=”something” name=”something”>
<label for="something">Label text</label>
The label should be clickable
<input type=“checkbox“ id=”something” name=”something”>
<label>Label text</label>
Headers
All pages should have one h1 tag.
If more then one h1 tag, they should be wrapped in a section
<section>
<h1>Lorem ipsum header<h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</sectio>
<section>
<h1>Lorem ipsum header<h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</sectio>
Multiple headers not wrapped in sections makes bad SEO.
<div>
<h1>Lorem ipsum header<h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<div>
<h1>Lorem ipsum header<h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
Links
All links should always have styles for hover, focus and active.
<a href="https://example.com" title="Some text">https://example.com</a>
<style>
a {
border:1px solid red;
}
a:hover {
border:1px solid blue;
}
a:focus {
border:1px solid black;
}
a.active {
border:1px solid purple;
}
</style>
Same style on hover, focus and active is bad.
<a href="https://example.com" title="Some text">https://example.com</a>
<style>
a {
border:1px solid red;
}
a:hover {
border:1px solid red;
}
</style>
Want to read about semantic elements: Semantic elements, here you can find a good guide how to use them Semantic HTML5 guide