What are the allowed ways to close self-closing tags for void elements such as <br> in HTML5?

html

Solution

From the W3C specification for HTML:

The following is a complete list of the void elements in HTML:

- `area`, `base`, `br`, `col`, `command`, `embed`, `hr`, `img`, `input`, `keygen`, `link`, `meta`, `param`, `source`, `track`, `wbr`

Void elements only have a start tag; end tags must not be specified for void elements.

Start tags consist of the following parts, in exactly the following order:

- A `<` character.

- The element’s tag name.

- Optionally, one or more attributes, each of which must be preceded by one or more space characters.

- Optionally, one or more space characters.

- Optionally, a `/` character, which may be present only if the element is a void element.

- A `>` character.

From this it seems that we can use either `<br>` or `<br/>`. However, the end tag `</br>` is not valid, so don't use `<br> </br>`.

Running the following through the HTML Validation Service indicates as much.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Testing void elements</title>
</head>
<body>
    some lines of txt <br>
    and then some more <br />
    I'm not done yet... <br> </br> <!-- This line generates an error -->
</body>
</html>

So use either `<br>` or `<br/>`, just make sure you use them consistently.

Edit: As noted by Brad, `<br />` is also valid XHTML, so perhaps it is best to choose this form.

Problem

In HTML5 is it still appropriate to close a `<br>` tag with `<br />`? This obviously also applies to all other single tags. I realize this doesn't actually affect how stuff works, but what is best practice here? ``` someLines of txt <br> // How you see a lot of people doing it and then some <br /> // XHTML style! Should I still be doing this? ow im not done yet.. <br> </br> // No one does this right? RIGHT?! ```

Original source