Большинство из этих ответов являются хорошим общим советом, но не являются правильными ответами на вопрос, который я считаю вполне законным.
HTML5 уже является движущейся целью;браузеры реализуют спецификации и вводят новшества с разной скоростью.Не существует единой вещи, называемой «действительный HTML», по крайней мере, это не стоит использовать.Если вы создаете общедоступную страницу для каждого человека и бота / сканера на планете, то вам уже нужно либо A) обнаружить клиента и соответственно настроить его для сложных / продвинутых страниц, либо B) сделать его действительно, действительно простым и понятным.Если, с другой стороны, вы помещаете его в локальную сеть или прячете за стеной входа в систему или разрабатываете передовые технологии и планируете частые обновления в любом случае, тогда вы можете смело вводить новшества по своему усмотрению.Разработчики браузеров и разработчики спецификаций отвечают их потребностям, вы можете сделать то же самое.
Так что, если вы хотите использовать собственный тег, выбирайте осторожно (здесь я укажу, что шансы, которые когда-либо станут частью формальногоСпецификации реализации браузера совершенно ничтожны), тогда иди к этому.Однако, чтобы заставить ваш CSS работать в IE, вам нужно сделать так, как это делает html5shim, и вызвать в вашем javascript document.createElement ('toys').
Я должен также добавить, что пользовательские элементы получают свои собственные стандартыи поддержка, но в настоящее время все согласны с тем, что все они должны иметь «-» в названии.Поэтому я бы порекомендовал что-то вроде «x-toys» или «my-toys», а не просто «toys».Лично я не в восторге от конвенции, но понимаю причины.