Все HTML-страницы должны пройти валидацию с помощью W3C-валидатора для подтверждения того, что разметка соответствует веб-стандартам. Это само по себе не является показателем того, что код является хорошим, но помогает отсеять проблемы, которые могут быть выявлены автоматически. Валидация не является заменой ручной проверки кода. (См. также другие валидаторы в разделе Кодекса HTML - Validation.)
Все теги должны быть правильно закрыты. Для тегов, которые служат оберткой для узлов, таких как текст или другие элементы, закрытие - это достаточно тривиальная задача. Одиночные теги должны быть закрыты с помощью косой черты, перед которой должен идти один пробел:
<br />
Следующий вариант является более компактным, но некорректным:
<br/>
W3C указывает, что закрывающей косой черте должен предшествовать ровно один пробел (источник).
Все теги и атрибуты должны быть написаны в нижнем регистре. Кроме того, значения атрибутов должны быть в нижнем регистре, когда код предназначен только для машин. В случаях, когда код должен быть удобочитаемым, необходимо надлежащим образом использовать начальные заглавные буквы.
Для машин:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Для человека:
<a href="http://example.com/" title="Description Here">Example.com</a>
Согласно спецификации W3C для XHTML, все атрибуты должны иметь значения и должны использовать двойные или одинарные кавычки (источник). Ниже приведены примеры правильного и неправильного использования кавычек и пар атрибут/значение.
Правильно:
<input type="text" name="email" disabled="disabled" /> <input type='text' name='email' disabled='disabled' />
Неправильно:
<input type=text name=email disabled>
В HTML не все атрибуты должны иметь значения, и значения атрибутов не всегда должны быть заключены в кавычки. Хотя все примеры, приведенные выше, являются правильными с точки зрения HTML, отсутствие кавычек у атрибутов может привести к проблемам безопасности. Всегда заключайте значения атрибутов в кавычки.
Как и в случае с PHP, в HTML отступы должны всегда отражать логическую структуру. Используйте для этого табуляции, а не пробелы.
При смешивании кодов PHP и HTML, отступы PHP-блоков должны быть в соответствии с окружающим HTML-кодом. Закрывающие PHP-блоки должны иметь те же отступы, что и открывающие.
Правильно:
<?php if ( ! have_posts() ) : ?> <div id="post-1" class="post"> <h1 class="entry-title">Not Found</h1> <div class="entry-content"> <p>Apologies, but no results were found.</p> <?php get_search_form(); ?> </div> </div> <?php endif; ?>
Неправильно:
<?php if ( ! have_posts() ) : ?> <div id="post-0" class="post error404 not-found"> <h1 class="entry-title">Not Found</h1> <div class="entry-content"> <p>Apologies, but no results were found.</p> <?php get_search_form(); ?> </div> </div> <?php endif; ?>
За основу стандартов кодирования HTML взяты стандарты Fellowship Tech Code Standards (CC license).