Хорошо известно, что браузеры будут принимать недопустимый HTML и делать все возможное, пытаясь понять это. Если вы создаете веб-страницу, содержащую только следующий код:
<html>
<head>
<title>This is bad HTML</title>
<body>
<h1>Bad HTML</h2>
<p>This is a paragraph
</body>
то вы получите веб-страницу, обработанную таким образом, чтобы показать приемлемое представление. Независимо от того, что вы имели в виду или нет, зависит от понимания браузером ваших ошибок.
Это для меня такое же, как если бы Javascript мог быть написан следующим образом:
if (some_var == 1) {
say_something("some text');
else {
do_something_else();
// END OF CODE
который, компилятор Javascript, написанный с тем же усилием, чтобы понять смысл недействительного кода, мог бы проработать так, как вы имели в виду, или сделать свой собственный смысл, но запустить его в конце концов.
Я видел несколько статей и вопросов по поводу вопроса "Стоит ли даже нарисовать правильный HTML?" , в котором представлены несколько мнений о плюсах и минусах написания действительного HTML. Однако, что это действительно заставляет меня задаться вопросом:
Почему браузеры принимают недопустимый HTML-код в первую очередь?
ПРИМЕЧАНИЕ. Следующие вопросы задают не больше вопросов, а способ дать контекст единственному вопросу, который я задаю здесь:
-
Почему браузер не является строгим?
-
Почему они не отклоняют с ошибками неверный код, как и любой другой язык программирования? (не то, что я называю HTML языком программирования, но вы понимаете)
-
Разве это не заставит всех разработчиков писать HTML-код, который будет интерпретироваться точно так же в любом браузере?
-
Если браузеры отказались разобрать недопустимую разметку, не приведет ли это к тому, что эффективно приведет к действительной разметке везде и от тех, кто хочет опубликовать контент в Интернете?
-
Если это происходит из-за исторических причин и обратной совместимости, не пора ли уже менять время, когда мы уже видим такие сайты, как adsense.google.com, отказывающиеся от совместимости с IE < v10?
РЕДАКТИРОВАТЬ: Те, кто голосует, чтобы закрыть этот вопрос, пожалуйста, передумайте. Это не широкий вопрос, а не на основе. Это очень конкретный вопрос по очень конкретному вопросу, полностью связанный с миром программирования, и на который можно однозначно ответить реальным ответом тех, кто его действительно знает. Спасибо.