Вопрос по cross-browser, html5, w3c-validation – HTML 5 - раннее принятие, где это возможно - хорошо или плохо?

16

Этот вопрос был немного вдохновленэтот вопрос, в котором наиболее одобренный ответ рекомендовал использовать функцию из HTML 5. Это, конечно, показалось мне хорошим методом, но меня заинтересовало использование возможностей будущей спецификации в целом.

HTML 5 предлагает множество приятных улучшений, многие из которых могут быть использованы без проблем в современных браузерах.

Некоторые примеры:

<code>// new, simple HTML5 doctype (puts browsers in standards mode)
<!doctype HTML>

// new input types,  for easy, generic client side validation
<input type="email" name="emailAddress"/>
<input type="number" name="userid"/>
<input type="date" name="dateOfBirth"/>

// new "required" attribute indicates that a field is required
<input type="text" name="userName" required="true"/>

// new 'data-' prefixed attributes
// for easy insertion of js-accessible metadata in dynamic pages
<div data-price="33.23"> 
    <!-- -->
</div>
<button data-item-id="93024">Add Item</button>
</code>

Многие из этих новых функций предназначены для того, чтобы браузеры могли автоматически проверять формы, а также предоставлять им более качественные данные (например, средство выбора даты). Некоторые из них просто удобны и кажутся хорошим способом подготовиться к будущему.

В настоящее время они ничего не нарушают (насколько я могу судить) в текущих браузерах и допускают чистый, общий клиентский код.

Однако, несмотря на то, что все они действительны в HTML 5, они НЕ действительны для HTML 4, и HTML 5 все еще является черновиком на данный момент.

Is it a good idea to go ahead and use these features early?

Есть ли у них проблемы с реализацией браузера, которые я не осознал?

Должны ли мы сейчас разрабатывать веб-страницы, использующие черновые функции HTML 5?

Некоторые функции HTML5 ломают вещи во всех браузерах. Ionuț G. Stan
Зависит от того, какие браузеры вам нужно поддерживать. Если вам нужно, чтобы сайт работал с IE, я бы сказал, что, возможно, это слишком рано. Scott
@ Скотт, насколько я могу судить, ни одна из этих функций не нарушает ничего в IE или любых других браузерах (хотя я могу что-то упустить). TM.
@ TM О, вы недооцениваете способность IE делать действительно странные вещи в странных условиях. Scott
@ Я говорю о тех, кого я упомянул, а не о ВСЕХ функциях. Очевидно, что новые теги не будут работать. TM.

Ваш Ответ

7   ответов
1

I will not implement new features from HTML until at least they have support from all major browsers.

Клиенты не заботятся о том, является ли ваша страница действительной, их больше волнует, работает ли она в разных браузерах. Даже если мы будем бороться за внедрение новейших стандартов, все еще будут клиенты и компании, которые никогда не потеряют свой IE6, и IE6 будет в списке требований к браузерам еще какое-то время.

Новые типы форм приветствуются, тем не менее, формы должны быть проверены на стороне сервера.

Переход на существующие документы HTML5 потребует больших усилий и адаптации, и, по моим оценкам, не произойдет в одночасье. Ожидайте, по крайней мере, 3 года, пока он не достигнет мейнстрима.

12

First, validation doesn't mean that much, because an HTML page can very well be valid but badly authored, inaccessible, etc. See Say no to "Valid HTML" icons and Sending XHTML as text/html Considered Harmful (in reference to the hobo-web tests mentioned in another response) Given this, I'd highly recommend using the new DOCTYPE: the only reason for having it in HTML5 is that it's the smallest thing that triggers standards mode in browsers, so if you want standards mode, go with it; you have little to no reason to use another, verbose, error-prone DOCTYPE As for the forms enhancements, you can use Weston Ruter's webforms2 JS library to bring it to non-aware browsers and finally, about the data-* attributes, it a) works in all browsers (as long as you use getAttribute()), b) is still better than abusing the title or class attributes and c) won't bother you with validation as we said earlier that validation isn't that important (of course it is, but it doesn't matter that your page is invalid if the validity errors are willful; and you can already use HTML5 validation in the W3C validator, so...); so there's no real reason not to use them either.
& lt; x201C; проверка не имеет большого значения, потому что HTML-страница вполне может быть действительной, но плохо написанной & # x201D; & # X2014; верно, но только для ваших собственных целей разработки, проверка - это простой, автоматический способ обнаружить некоторые ошибки.
2

в поисковых системах, возможно, стоит подумать, что некоторые движки отдают приоритет проверке HTML (Источник:http://www.hobo-web.co.uk/seo-blog/index.php/official-google-prefers-valid-html-css/).

Кроме того, стоит учесть, что использование новых элементов ввода даты (таких как элементы в Opera и, возможно, другие) обеспечивает большее удобство со стороны разработчика, как правило, исключает включение более сложных элементов управления Javascript, которые улучшают работу старых браузеров ( обычно возвращается к простому полю ввода текста).

Конечно, и как всегда, не полагайтесь на проверки на стороне браузера и проверяйте все входные данные на стороне сервера.

Я должен признать, что нет ничего лучше, чем отправить непроверенную страницу и затем вернуть ее обратно, либо помеченную красным, либо пустую с неясными ошибками проверки.
+1 для проверки на стороне сервера!
Конечно, я никогда не обойдусь без проверки на стороне сервера. Кроме того, дополнительная проверка на стороне клиента (никогда не заменяющая!) Может сделать ее более удобной для пользователя TM.
2

прежде чем их можно будет проверить хотя бы в одном браузере. Например, если вы используете функции формы сейчас, обязательно протестируйте в Opera. В противном случае вы, скорее всего, принесете больше вреда, чем пользы, внеся свой вклад в отравленное наследие.

Если функция уже реализована в браузерах и вы тестируете эти браузеры, обязательно используйте новые функции.

Смотрите такжестарый ответ.

0

но определенно я не буду касаться любого моего производственного кода (существующего кода) этим новым стандартом, по крайней мере, сейчас и до тех пор, пока у меня не будет веской причины поддержать этот шаг.

2

Одним словом: это зависит от вашего контекста и толерантности к риску :)

Немного длиннее:

I think it's always good to push the envelope on early adoption of technology. It gives you an advantage over late-comers in the commercial world, and also gives you much more leverage in influencing the technology as it emerges.

If you don't want to have to re-write code, or update your source, then early adoption may not be for you. It's perfectly respectable to want to write solid, stable code that never has to change, but it's entirely up to you (and your business context)

1

Принцип надежности:

In RFC 761 (Transmission Control Protocol, 1980) American computer scientist Jon Postel summarized earlier communications of desired interoperability criteria for the Internet Protocol (cf. IEN 1111, RFC 760) as follows:

TCP implementations should follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.

Так что, имхо, нет.

@ Джон Уэлдон, я думаю, исторически существовали различия между реализациями TCP от разных поставщиков. Таким образом, быть консервативным в этом контексте означает быть консервативным в следовании спецификации. Я думаю, что этот принцип применим ко всему, что требует межплатформенного взаимодействия, включая html со многими браузерами.
Это тоже хороший принцип. (но как мы вообще сможем улучшить состояние технологии, если все будут консервативны в том, что они делают?) Я бы сказал, что этот принцип применим именно к основным компонентам архитектуры, которые должны быть очень стабильными ... как и мой второй очко :) +1 за хороший ответ.
Хорошая точка зрения. Я согласен с одной стороны, но с другой стороны, это, кажется, немного ограничиваетevery ситуация. Может быть, да, на корпоративном сайте или на правительственной веб-странице, но как насчет других менее строгих условий? Хорошая дискуссия :)

Похожие вопросы