Musts

Character encoding like <meta charset="utf-8">
      ------------------
      

Preferences

'type' attribute
      ----------------
      On <link>, <style>, <script> should be **dropped**.

      'target' attribute
      ------------------
      **Not deprecated** (XHTML) anymore.

      &amp; (ampersand)
      -------------
      **No need** to encode it as &amp; anymore if it appears as text on a page.

      Placement of scripts
      --------------------
      Put **all scripts at the bottom** of the HTML document (before </body>) to prevent slow loading page content.
      
      Exceptions: scripts such as the HTML5 shiv, that need to be running before the browser starts rendering the page.

The HTML5 shiv, needed to provide support for the new elements in Internet Explorer versions below 9, depends on JavaScript. However, the concern that IE 6-8 users may have JavaScript disabled can be ignored. Studies from around 2010 already showed that less than 1% of total web traffic came from JavaScript-disabled browsers. Since then the amount of people using IE 6-8 has decreased greatly.

Additional, personal preferences

ALT texts on images, a decision tree

Case
      ----
      All elements and attributes **lowercase**.

      Closing tags
      ------------
      All elements **containing content** get closing tags.

      Void elements
      -------------
      **No trailing slash** on IMG, META, INPUT, etectera.

      Attributes
      ----------
      For consistency put all attribute values between **quotes**.

      Target attribute on links
      -------------------------
      **Not** to be used with "_blank", and with "[window name]" only in very special cases.

      Boolean attributes
      ------------------
      Enter the **attribute label only**, like:
        <input type="text" disabled>
      not the redundant value, like:
        <input type="text" disabled="disabled">