Пожалуйста, обратитесь к официальным спецификациям W3C для атрибутов id и class .Цитирование:
Определения атрибутов
id = name [CS]
Этот атрибут присваивает имя элементу.Это имя должно быть уникальным в документе.
class = cdata-list [CS]
Этот атрибут присваивает элементу имя класса или набор имен классов.Любому числу элементов может быть присвоено одно и то же имя класса или имена.Несколько имен классов должны быть разделены пробелами.
Как видите, идентификатор может не совпадать.Валидатор не примет ничего другого.Это не подлежит обсуждению.Если вы хотите создать действительную разметку, измените идентификаторы на уникальные.Все просто.
Единственный способ обойти это - использовать свой собственный DTD для проверки того, что атрибуты ID не требуют уникальности.Конечно, тогда это будет не HTML, а MiojamoML, и вы должны использовать его как таковой, и тогда вы, скорее всего, столкнетесь с некоторыми причудами в различных браузерах, и это невозможно сделать, но так оно и есть.По крайней мере, если вы хотите сделать это правильно.
Обратите внимание, что если ваша цель состоит в том, чтобы именованные идентификаторы в элементах формы для отправки формы, вы должны использовать вместо этого input name attribute
.Этот атрибут не должен быть уникальным.