HTML, XML and other markups

General

  • Unlike other files, indentation for XML/HTML is 2 spaces.

  • Don’t use inline HTML style attribute. Only CSS class.

  • Use HTML5 doctype:

    <!doctype html>
    

CSS interaction

  • Make sure all elements that are used in JS have an ID. This helps with testing.
  • Make sure all related elements have the same class.
  • Make sure that a page will not contain the same ID more than once.

HTML tags usage

  • Don’t use new HTML5 elements/tags and API.

  • Don’t use deprecated HTML4 elements/tags.

  • Paragraphs of text should always be placed in a <p> tag. Never use multiple <br/> tags.

  • Items in list form should always be in <ul>, <ol>, or <dl>, Never a set of <div> or <p>

  • Every form input that has text attached should utilize a <label> tag. Especially radio or checkbox elements.

  • Use double quotes for tag/element attributes.

  • Even though quotes around attributes is optional, always put quotes around attributes for readability:

    GOOD: <p class="line note" data-attribute="106">
            This is my paragraph of special text.</p>
    BAD : <p class="line note" data-attribute=106>
            This is my paragraph of special text.</p>
    
  • Make use of <thead>, <tfoot>, <tbody>, and <th> tags (and Scope attribute) when appropriate. (note: <tfoot> goes above <tbody> for speed reasons. You want the browser to load the footer before a table full of data.):

    <table summary="This is a chart of invoices for 2011.">
      <thead>
        <tr>
          <th scope="col">Table header 1</th>
          <th scope="col">Table header 2</th>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <td>Table footer 1</td>
          <td>Table footer 2</td>
        </tr>
      </tfoot>
      <tbody>
        <tr>
          <td>Table data 1</td>
          <td>Table data 2</td>
        </tr>
      </tbody>
    </table>