` or `
`.
* Every form input that has text attached should utilize a `` tag. **Especially radio or checkbox elements.**
* Even though quotes around attributes is optional, always put quotes around attributes for readability.
* Avoid writing closing tag comments, like ``. This just adds to page load time. Plus, most editors have indentation guides and open-close tag highlighting.
* Avoid trailing slashes in self-closing elements. For example, ` `, ` `, ` `, and ` `.
* Don't set `tabindex` manually—rely on the browser to set the order.
```html inert=true
This is my paragraph of special text.
```
## Boolean attributes
Many attributes don't require a value to be set, like `checked`, so don't set them.
```html inert=true
1
```
For more information, [read the WhatWG section](http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attributes).
## Lean markup
Whenever possible, avoid superfluous parent elements when writing HTML. Many times this requires iteration and refactoring, but produces less HTML. For example:
```html inert=true
```
## Forms
* Lean towards radio or checkbox lists instead of select menus.
* Wrap radio and checkbox inputs and their text in ``s. No need for `for` attributes here—the wrapping automatically associates the two.
* Form buttons should always include an explicit `type`. Use primary buttons for the `type="submit"` button and regular buttons for `type="button"`.
* The primary form button must come first in the DOM, especially for forms with multiple submit buttons. The visual order should be preserved with `float: right;` on each button.
## Tables
Make use of ``, ` `, ` `, and `` tags (and `scope` attribute) when appropriate. (Note: ` ` goes above ` ` for speed reasons. You want the browser to load the footer before a table full of data.)
```html inert=true
Table header 1
Table header 2
Table footer 1
Table footer 2
Table data 1
Table data 2
```