src/validate/html/index.js/validateHtml
export default function validateHtml ( validator, html ) {
	let elementDepth = 0;

	function visit ( node ) {
		if ( node.type === 'Element' ) {
			if ( elementDepth === 0 && validator.namespace !== namespaces.svg && svg.test( node.name ) ) {
				validator.warn( `<${node.name}> is an SVG element – did you forget to add { namespace: 'svg' } ?`, node.start );
			}

			if ( meta.has( node.name ) ) {
				return meta.get( node.name )( validator, node );
			}

			elementDepth += 1;

			validateElement( validator, node );
		}

		if ( node.children ) {
			node.children.forEach( visit );
		}

		if ( node.else ) {
			visit( node.else );
		}

		if ( node.type === 'Element' ) {
			elementDepth -= 1;
		}
	}

	html.children.forEach( visit );
}