Перевірка HTML: чи варто цього?


52

Які переваги та недоліки (якщо такі є) в тому, щоб переконатися, що всі сторінки перевірені, порівняно з недійсним HTML, який працює у всіх основних браузерах?

Крім того, чи є дійсний HTML після виконання Javascript так само важливим?


5
Це не відповідає на ваше запитання, але ... якщо розмістити доктрип на своїй сторінці, браузер переведе в стандартний режим, а не в режим диваків. Перегляньте режим примх, щоб побачити, що я маю на увазі.
Еван Плейс

1
@Evan Plaice - Хоча не будь-який ДОКТИП . Деякі DOCTYPES насправді викликають химерність або майже стандартні режими. Специфікація HTML5 пояснює це детальніше.
luiscubal

1
@luiscubal Це нове в HTML 5, тому що з en.wikipedia.org/wiki/Quirks_mode , він зазначає "... якщо присутній повний DOCTYPE, браузер буде використовувати стандартний режим, а якщо він відсутній, браузер буде використовувати режим химерності . ".
Еван Плейс

@Evan Plaice Не впевнений у попередніх версіях HTML, але в HTML5 конкретно зазначено, що робити з давніми ДОКТОМИ: дивіться whatwg.org/specs/web-apps/current-work/multipage/…
luiscubal

1
@Evan Plaice Іншими словами, "DTD HTML 2.0 Level 1" запускає режим примх.
luiscubal

Відповіді:


42

Я думаю, що це, безумовно, варто зробити , але ти ніколи не повинен бути рабом валідації - це гра дурня.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Підтвердьте свій HTML-код. Знайте, що означає мати дійсну розмітку HTML. Розуміти інструментарій. Більше інформації завжди краще, ніж менше інформації. Чому літати сліпо?

  2. Нікого не цікавить, чи ваш HTML дійсний. Крім тебе. Якщо хочеш. Не замислюйтесь ні на секунду, що створювати ідеально правильний HTML важливіше, ніж запускати веб-сайт, надавати функції, які радують користувачів або виконувати роботу.


3
Я повинен другий це. Я бачив багато проблем з бібліотеками javascript, які можна звинуватити в недійсному HTML. Кілька вкладених форм і незаконно закритих тегів є основними правопорушниками. Як каже Джефф, не будьте рабом, але не нарікайте, коли jQuery не працює, тому що для вашої сторінки недійсний HTML (XHTML, HTML 5 або все, що ви вибираєте в якості доктрипу).
Гарет Фаррінгтон

@ Джеф Етвуд: чи не можу я погодитися більше, коли ти кажеш: "Ніхто не дбає, чи ваш HTML дійсний. Крім вас". Сумно, але правда, клієнтів справді все одно.
Марко Демайо

@MarcoDemaio Чому це сумно? Як клієнта та кінцевого споживача, мене більше хвилює питання про те, чи працює сайт у всіх браузерах (більшість з яких не відповідає стандартам для початку), ніж те, чи він перевіряє чи ні. Дійсний HTML насправді не має значення. Google, Facebook, Twitter, цей сайт тощо. Жоден відповідний сайт не має дійсної розмітки. Чому? Оскільки дійсний HTML нічого не робить, окрім роздуття сторінки та збільшення витрат на пропускну здатність.
NullUserException

Те ж саме стосується ідеально відступної розмітки. Це ще більше марно, це 100% втрата пропускної здатності і не має практичного використання.
NullUserException

@NullUserException: Я думаю, це сумно, тому що я дізнався, що перевірені веб-сайти, як правило, набагато краще в усіх браузерах. Дивіться мій коментар до відповіді Алана: webmasters.stackexchange.com/a/373/1429 Перевірка збереженого для мене веб-сайту і досі економить мені величезну кількість часу. Про ідеальну розмічену розмітку я ніколи не чув про технічні характеристики. Можливо, я хотів би зробити відступ на 3 пробіли, а ви можете відмітити одне.
Марко Демайо

32

Я вважаю дійсний HTML вагомою ціллю, але не розглядаю його як повне і кінцеве створення хороших веб-сайтів.

Підступка полягає в тому, що ваша розмітка може бути абсолютно достовірною, але вона може бути несемантичною - наприклад, використовуючи таблиці для компонування або навігації. Існує різниця між дійсним кодом і семантичним кодом.

З іншого боку, якщо ви використовуєте рекламні або зовнішні сценарії, вони можуть вставити власну розмітку, яка має шанс по-справжньому зіпсуватись із вашою власною.


22

Я думаю, що це того варте, оскільки я виявив багато помилок розмітки та логіки, шукаючи перевірку. Це одна з тих "необхідних, але недостатньо" речей. Дійсна розмітка, як код, який компілює (або перевіряється через JSlint) без помилок, попереджень та підказок, є хорошим першим кроком для його правильного встановлення.


+1 повністю погоджуюся з цим. Перевірка сторінок економить величезну кількість часу, що починається після JS та виправлених помилок, які здаються настільки загадковими, і пов'язані лише з переробленим або не закритим тегом HTML. Крім того, з такими інструментами, як FF addon Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/], досить чітко перевірити всі ваші сторінки на локальному рівні.
Марко Демайо

9

Великим плюсом дійсного HTML є те, що Ваша сторінка стає доступнішою для речей, окрім "основних браузерів". Усі "основні браузери" мають нескінченні способи вирішення всіх недійсних мотлоху, який заповнює WWW. Однак дотримання дійсного HTML допомагає, наприклад, якщо хтось використовує браузер для людей із вадами зору або отримує доступ до ваших сторінок в режимі офлайн та ін.


8

Перевірка сама по собі не є настільки важливою, оскільки мало браузерів на 100% сумісний, а специфікація не на 100% зрозуміла, як інтерпретувати правила.

Однак дійсний HTML дає вам кращу позицію для адаптації та вдосконалення вашого сайту. У міру того, як стандарти рухаються, вони, як правило, мігрують вперед, і якщо ваш новий веб-сайт дійсний, оновлення для підтримки останньої речі повинно бути простішим.

Знизу, якщо бути дійсним, це простіше залишатися на вершині гри та бути максимально сумісним із якомога ширшою аудиторією.


4

Найкращий підхід - дізнатися, який недійсний HTML поганий, а який недійсний HTML не має значення.

Наприклад, забути закрити <div>тег дуже погано , оскільки ваш макет майже напевно виявиться в одному чи кількох браузерах.

Однак використання <br>замість <br />XHTML не має значення - усі браузери інтерпретуватимуть як розрив рядків без проблем. Використання targetатрибута на посиланнях є недійсним, але найгірший сценарій - браузер не відкриває посилання у новому вікні.


targetдіє в перехідних XHTML, і лише мазохісти використовують строгий. Якщо вимкнути косу рису закриття, це зробить вашу сторінку недійсною XML, що, ймовірно, заплутає екранні скребки. Якщо ви вирішили використовувати XHTML, для вашої сторінки має бути принаймні дійсний XML.
Тгр

1
@Tgr: Смішно, я вважав, що мазохісти віддають перевагу нестандартному режиму. Навіть перехідні вчення мають свої проблеми (використовуючи режим "майже стандартних" тощо)
DisgruntledGoat

1
Я б стверджував, що Strict є важливим - чому вибираєте ризикувати застарілим кодом та режимом примх. Використання Strict не коштує, крім того, що це спонукає вас дізнатися більше про вашу бажану версію розмітки.
CJM

3

Під час запуску валідатора вам потрібно буде вивчити помилки, які він дає вам у кожному конкретному випадку. Чи важлива перевірка? Мені так, це дуже важливо. Але це вимога? Немає.

Такі речі, як використання одного і того ж ідентифікатора кілька разів (замість класу), введення елементів рівня блоку всередину елементів прямолінійного рівня (зазвичай ці елементи теж не підходять семантично), відсутні атрибути alt на зображеннях (погана доступність для людей з обмеженими можливостями ), всі важливі. Такі речі, як невідомі атрибути в тегах, НЕ важливі. Зовсім. Рамки Javascript, такі як Dojo або жахлива панель соціальних медіа Meebo, використовують спеціальні атрибути як гачки, а специфікація HTML зазначає, що вони дозволені, і будь-який невідомий атрибут слід ігнорувати. Валідатор не ігнорує їх, однак видає помилки. Ці помилки можна ігнорувати.

Під час перевірки не припускайте, що якщо у вас є помилки, ви робите це неправильно. Семантика набагато важливіша, і просто так трапляється, що дійсний HTML - це частіше, ніж не природний результат володіння належною семантикою.


Я згоден - підтверджуйте свою веб-сторінку, але за деяких обставин ви можете ігнорувати попередження, якщо ви знаєте, чому вони там
Casebash

3

Однією з причин перевірити ваш сайт на допустимий HTML - це те, що він забезпечує, що павуки пошукової системи зможуть повністю індексувати та визначати значення ваших сторінок. Якщо вони не можуть цього зробити через неправильний HTML-код (який можуть переглядати основні браузери з історичних причин), ви потенційно обмежуєте рейтинг своїх пошукових систем.

Також було припущено, що, хоча основні пошукові системи добре справляються з неправильним HTML-кодом, вони також можуть присвоювати «балам» якості сторінки валідність, що ще більше впливає на вашу здатність до того, як заслуговує ваш вміст.


2
Google категорично заявив, що недійсний HTML не впливає на рейтинг. Однак я можу побачити випадок, коли HTML настільки неправильно сформований, що фактичний вміст сторінки павуки не можуть читати - хоча в цьому випадку майже впевнені, що браузери почнуть виникати з проблемами візуалізації.
НевдоволенийGoat

@DisgruntledGoat Ви маєте рацію, ось довідка для цього: youtube.com/watch?v=FPBACTS-tyg
JasonBirch

@DisgruntledGoat Очевидно ... Сам Google переповнений недійсним HTML-кодом, і я пам’ятаю, що вони сказали, що вони насправді не хвилюються, і що це добре мати недійсний HTML, якщо це означає швидше завантаження.
NullUserException

3

Я дійсно не думаю, що це вже має значення. Раніше я був рабом валідації, тепер я рідко коли-небудь перевіряю це. Можливо, я згорів від переконання, що мій сайт є дійсним, або, можливо, я просто не хвилювався, бо більше ніхто цього не зробить. Я можу гарантувати, що 99,9% наших відвідувачів навіть не знають, що це таке, а навіть небайдуже, якщо вони це зробили. Майбутнє програмне забезпечення для браузера може, але коли настане цей день, я тоді про це потурбуюся.


2

Перевірка корисна, тому що вона може допомогти вам виявити деякі важкі помилки, такі як

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />

або непередбачувана поведінка веб-переглядача (наприклад, розміщення блокових елементів у файлі aіноді може порушуватися некрасиво у Firefox)


2

Точка, про яку ще ніхто не згадував, полягає в тому, що недійсний HTML може спричинити повільніші часи візуалізації, тоді як браузер намагається зрозуміти нестандартний HTML під час відображення.


Я б спростував це, якби міг. Я дуже сумніваюся, що це має будь-який помітний ефект; Мені б більше занепокоєти дійсну розмітку сторінки, яка потребує більше часу для завантаження (особливо при повільних / мобільних з'єднаннях).
NullUserException

@NullUserExceptions: Я не думаю, що точка БредБ заслуговує -1. Це може бути важко довести, але для веб-переглядача, який потребує впорядкування та виправлення всередині безладу HTML, може знадобитися трохи більше, ніж добре відформатована дійсна HTML-сторінка, в якій немає помилок. Чому ви не дасте відповіді на це запитання, показуючи нам хороший приклад завищеної сторінки через зловживання HTML-перевіркою. Я не можу подумати, як дійсна HTML-сторінка могла бути настільки завищеною у порівнянні з тією ж сторінкою з недійсним HTML-кодом.
Марко Демайо

1

немає недоліків у наявності дійсного html. є причина, чому в першу чергу є специфікація і чому в специфікацію докладається багато зусиль, щоб визначити, як все має працювати.

в основному, все, що ви отримуєте, - це відповідати характеристикам. що в свою чергу означає, що програми, написані для читання html (браузери, боти), не можуть звинувачувати ВАС за те, що ви не відповідали специфікаціям, якщо щось пішло не так. і деякі з цих програм дають додаткові бали (більш високий рейтинг у пошукових системах, якщо бот повідомляє "відповідає специфікації"). якщо ви зустрінетесь із специфікаціями, вас здивує набагато менше, якщо деякі веб-переглядачі не надаватимуть зламаний HTML так, як ви вважаєте, що це повинно.

тож відповідати специфікаціям та писати дійсні HTML - це добре для вас, недоліків взагалі немає.


Хам, у яких пошукових системах ви отримуєте більш високий рейтинг, якщо зустрінете специфікацію?

2
Недоліком може бути додатковий час розробки, який ви витрачаєте, переконуючись, що весь ваш код відповідає специфікації. Хоча ця вартість загалом мінімальна, її все ж слід розглядати як недолік.
чат

@kinopiko: Якщо такі є, він не є одним із основних (Google, Yahoo, Bing, Ask). Маючи повний безлад коду, який навіть досвідчений (людський) веб-розробник не може прочитати, можливо, вам завадить, але використання деяких "незаконних" атрибутів має абсолютно нульовий вплив на рейтинги.
НевдоволенийGoat

Ось проблема з термінологією перевірки. Ви чи дійсні, чи ні. Ступенів немає. Зламаний HTML (наприклад, незакриті теги, неправильно розміщені / відсутні структурні теги тощо) є недійсним і шкодить SEO, але більшість людей не говорять про це, коли кажуть "перевірка". Новачок, можливо, захоче скористатися валідатором, щоб переконатися, що він не допустив жодної з цих помилок-початківців, але професійному розробнику цього не потрібно, оскільки їх код уже "досить дійсний", так би мовити, в терміні SEO.
Lèse majesté

1

Деякі помилки перевірки HTML можуть спричинити не очевидні проблеми з компонуванням (наприклад, неправильно вкладені / незакриті теги), помилки JavaScript (наприклад, використання idдекількох разів) та проблеми для деяких користувачів (наприклад, не включаючи значущий або порожній altатрибут на зображеннях).

Якщо всі наші сторінки підтверджені, це хороша автоматизована перевірка, яку ви можете зробити, щоб виключити джерела помилок. Якщо ви залишаєте деякі помилки перевірки, оскільки знаєте, що вони не заподіюють ніякої шкоди, ваша перевірка більше не автоматизована: вам потрібно переглянути кожну помилку і пам’ятати, що це нормально. Особисто мені це більше подобається, коли комп’ютери скорочують обсяг роботи, яку я повинен виконати, а не збільшувати її.


1

Один момент, про який ніхто не згадує, - це майбутні розробки браузера. Хоча всі сучасні браузери відносно неправомірну розмітку обробляють відносно добре, це може бути не завжди.

В майбутньому виробники браузерів забезпечуватимуть, щоб їх веб-браузери працювали за стандартами HTML / XHTML, тож саме про це повинні вражати і веб-розробники. Просто тому, що певний біт недійсної розмітки працює зараз, не гарантує, що він буде працювати в майбутніх браузерах.


Треба сказати, мені цікаво, чи це правда.

2
Так, я не бачу жодного веб-переглядача, який коли-небудь припиняє підтримку <font>тегу чи його помилки.
НевдоволенийGoat

Я не бачу, у чому проблема - підтримка застарілої чи недійсної розмітки може змінитися в майбутньому. Переглядаючи недосконалу реалізацію (X) HTML у більшості браузерів, напевно, ви будете безпечніше дотримуватися дійсної розмітки. Немає витрат, пов’язаних з дійсною розміткою, крім того, щоб просто знати, що ви робите.
CJM

1

Дійсність допомагає уникнути несумісності та підтримує збереження коду. Браузери відновлюються після помилок розмітки, але іноді дуже неінтуїтивно.


  • На основі DTD (HTML4, XHTML1 @ W3C) - Можливо, цього не варто. DTD є примітивним і, наприклад, не може перевірити дійсність більшості атрибутів. В основному вам важко зрозуміти помилки щодо об'єктів та вкладень.

  • Валідатор HTML5 - Так . Безумовно. HTML5 є більш прагматичним і допускає деякі нешкідливі конструкції, які раніше були помилками. Валідатор OTOH Henri набагато ретельніше та краще розкриває реальні проблеми.


Дійсність коду, створеного JS, може мати значення, оскільки браузери працюють на DOM, незалежно від того, як він створений. Якщо ви користуєтесь document.write(), то вам навіть доведеться подбати про правильність синтаксису (він проходить через аналогічний аналізатор, як джерело сторінки).



0

Google і Bing не використовують, не мають і ніколи не використовуватимуть перевірку CSS або HTML як фактор ранжування.

Більшість веб-сайтів мають десятки-сотні помилок, і вам не потрібно хвилюватися про них, оскільки всі пошукові системи дбають про те, як відображається сторінка. Просто переконайтеся, що ваш веб-сайт відображається правильно у всіх основних веб-переглядачах та програмі Google Fetch .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.