SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
Формы в вебе
   Роберт Харитонов
Можно!
Но зачем?
Против
• Требует знаний
• Зона риска
• «Мне и так хорошо»




 08
За!
Масштаб?
• Социальные сети
• Персонализированный поиск
• Почта, платёжные системы
• и другие сервисы...




  14
Счастливый пользователь =
• Удобное заполнение
• Подсказки об ошибках
• Приятный UX




 15
Поговорим про
• Новые поля и атрибуты
• Валидацию форм
• Стилизацию
• Доступность




 16
Поля и
атрибуты
Надёжно
• atfcs
   uoou




IE 10+




18
Надёжно
• input type= u l, t l, n m e (min/max/step = "")
               r    e    ubr




 19
Надёжно
• input type=file a c p = M M " m l i l
                   cet"IE utpe




 20
Аккуратно
• e a l - проблема с локализованными доменами (double-byte)
   mi
      • pten"^@*[ @*
         atr=[ ]@^ ]"

• p a e o d r " - не заменяя label
   lchle="




 21
С обратной совместимостью
• ls="+ dtls
   it"   aait




Мягкая деградация
22
Желательно с полифилом
 Не работает в Firefox и IE:
• r n e - плохая деградация
   ag
• d t - разный формат даты, плохая стилизация
   ae


 Простой полифил из Webshims Lib и другие




 23
Рано
Рано
  Слабая поддержка браузеров
• datetime, datetime-local
• month, week
• color
• formation, formmethod, formtarget, formenctype - без IE

  Тест на поддержку форм



  25
Полезно знать
• true/false:
       • atcmlt="
          uoopee"
       • selhc="
          plcek"

• < u p t - о семантике
   otu>




  26
Валидация
Нативно
 Минимальный набор для лояльной валидации:

• rqie
   eurd
• u l, t l, n m e e a l
   r    e    u b r, m i


 (основные браузеры, IE 10+, без Safari и мобильных)




 28
Pattern
 Регулярные выражения:
• p t e n " ^ @ * [ @ * - email
   atr=[ ]@^ ]"
• [ - A Z - ] - apha-numeric
   az-09+
• ^ a z - ] a z - 0 9 _ . { , 0 $ - username
   [-AZ[-AZ--]12}


 Больше паттернов



 29
Pattern
<nu tp=tx"
 ipt ye"et
pten"09"tte"вдт цфоо заеи"
 atr=[-] il=Веие ирве нчне>




30
Нативно
 Временно без валидации:
• f r n v l d t = t u / a s " - на кнопку отправки
   omoaiae"refle

 На велосипеде:
• n v l d t = t u / a s " - на форму
   oaiae"refle




 31
JS API валидации
 Все основные браузеры (включая Safari) и IE 10+.
• Смена текста ошибки
• Переопределение вывода ошибок
• Дополнительная валидация


 Доступен лёгкий полифил H5F. Подробней об API.



 32
Строгая валидация
  Нативная валидация не рекомендуется, используйте фреймворки:
• Parsley.js
• jQuery Validation plugin
• и другие


  Не забываем про валидацию на сервере



  33
Вывод
 Строгость валидации:
• Минимальная - только в HTML
• Средняя - JS API + сервер
• Высокая - Фреймворки + сервер




 34
Стилизация
Реальность
CSS3 селекторы
 Из WHATWG
• : n a i :valid
   i v l d,




 37
CSS3 селекторы
 Из WHATWG и W3C
• : h c e :not(:checked)
   c e k d,




• : i a l d, :enabled
   dsbe




 38
CSS3 селекторы
 Из WHATWG
• : e u r d, :optional
   rqie
• : e d o l :read-write
   r a - n y,




 39
CSS3 селекторы
• :lchle
   paeodr




40
CSS3 селекторы
• :lchle
   paeodr

Везде, кроме Оперы, с помощью проприетарных селекторов:
 :wbi-nu-lchle {}
  -ektiptpaeodr
 :mzpaeodr{}
  -o-lchle
 :m-nu-lchle {}
  -siptpaeodr

Ограничения по свойствам


41
CSS3 селекторы
  По атрибутам:
• ipttp=mi]
   nu[yeeal
• iptrqie]
   nu[eurd
• ...




  42
Частичный доступ
• ошибки валидации




 43
Частичный доступ
• ошибки валидации

  :-ektvldto-ube{}
   :wbi-aiainbbl
  :-ektvldto-ubemsae{}
   :wbi-aiainbbl-esg
  :-ektvldto-ubearw{}
   :wbi-aiainbbl-ro
  :-ektvldto-ubearwcipr{}
   :wbi-aiainbbl-ro-lpe




 44
Progress




Подробней


45
Без доступа
• date
• range
• number
• color

  И снова Webshims Lib




  46
Доступность
Черный экран - так выглядет ваш сайт для 39 миллионов людей в мире.
Стандарт Aria
• rl=aet
   oe"lr"
• a i - i e = "off/polite/assertive"
   ralv
• a i - a e l d y = "ID", a i - a e = "ID"
   ralbleb                 ralbl
• a i - e u r d = "true/false"
   rarqie
• a i - n a i = "true/false"
   raivld




 49
Стандарт Aria
• a i - u o o p e e = "inline/list/both"
   raatcmlt
• a i - a u n w = "num", a i - a u t x = "text"
   ravleo                 ravleet
• a i - a u m x, a i - a u m n = "num"
   ravlea         ravlei
• + все лучшие практики

 Еще aria




 50
Нативная валидация,
     d t и другие HTML5 элементы форм
      ae
     пока не поддерживаются читалками.




51
Теперь знаем
• Новые HTML5 поля и атрибуты
• Валидация форм
• Стилизация
• Доступность




 52
Но...
«   The state of HTML5 forms support
         is changing very quickly though,

         and continues to improve.
                                  Jan Kleinert



55
Forms Boilerplate
  Стартовый комплект для создания правильных форм
• Примеры использования типов полей
• Лучшие практики и рекомендации
• Базовая разметка и стилизация
• Доступность (Accessability)

  Уже на гитхабе — rhr.me/FBP !



  56
Профит!
Бонус
 Расширенная версия слайдов на rhr.me/pres/forms
• <Progress>, <meter>
• Рабочие примеры кода
• Больше ссылок →




 59
Бонус
 Теория:
• HTML5 doctor об атрибутах и о типах полей

 Практика:
• О стилизации
• Исследования особенностей форм от Wufoo
• Демонстрация HTML5 форм



 60
Роберт Харитонов
Ведущий верстальщик, Одноклассники
        @operatino rhr.me
     слайды на rhr.me/pres/forms

Contenu connexe

En vedette (17)

Perepelitsa
PerepelitsaPerepelitsa
Perepelitsa
 
Kalugin balashov
Kalugin balashovKalugin balashov
Kalugin balashov
 
Panfilov
PanfilovPanfilov
Panfilov
 
Bubnov
BubnovBubnov
Bubnov
 
Smirnov reverse-engineering-techforum
Smirnov reverse-engineering-techforumSmirnov reverse-engineering-techforum
Smirnov reverse-engineering-techforum
 
Romanenko
RomanenkoRomanenko
Romanenko
 
Zenovich
ZenovichZenovich
Zenovich
 
A.pleshkov
A.pleshkovA.pleshkov
A.pleshkov
 
Platov
PlatovPlatov
Platov
 
Zamyakin
ZamyakinZamyakin
Zamyakin
 
Zacepin
ZacepinZacepin
Zacepin
 
Rabovoluk
RabovolukRabovoluk
Rabovoluk
 
Smirnov dependency-injection-techforum(1)
Smirnov dependency-injection-techforum(1)Smirnov dependency-injection-techforum(1)
Smirnov dependency-injection-techforum(1)
 
Zagursky
ZagurskyZagursky
Zagursky
 
Chudov
ChudovChudov
Chudov
 
Osipov
OsipovOsipov
Osipov
 
Kubasov
KubasovKubasov
Kubasov
 

Similaire à Haritonov

Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Yandex
 
Алексей Бережной - http-протокол
Алексей Бережной - http-протоколАлексей Бережной - http-протокол
Алексей Бережной - http-протоколYandex
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanovyaevents
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Yandex
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruYandex
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!Roman Dvornov
 
Андрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кодаАндрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кодаSergey Platonov
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePointVitaly Baum
 
М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014
М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014
М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014it-people
 
Управление сетками сайтов
Управление сетками сайтовУправление сетками сайтов
Управление сетками сайтовPlaytini
 
Управление сетками сайтов
Управление сетками сайтовУправление сетками сайтов
Управление сетками сайтовЕвгений Летов
 
Яндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачи
Яндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачиЯндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачи
Яндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачиСергей Мочалов
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьSQALab
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontendDenis Kolesnikov
 
SEO-Audit seo summit websarafan 2016
SEO-Audit seo summit websarafan 2016SEO-Audit seo summit websarafan 2016
SEO-Audit seo summit websarafan 2016Yuriy Khait
 
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...OWASP Russia
 

Similaire à Haritonov (20)

Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»
 
Алексей Бережной - http-протокол
Алексей Бережной - http-протоколАлексей Бережной - http-протокол
Алексей Бережной - http-протокол
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanov
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
 
Андрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кодаАндрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кода
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePoint
 
М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014
М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014
М. Коробов "Машинное обучение на фронте и в тылу", DUMP-2014
 
Управление сетками сайтов
Управление сетками сайтовУправление сетками сайтов
Управление сетками сайтов
 
Управление сетками сайтов
Управление сетками сайтовУправление сетками сайтов
Управление сетками сайтов
 
Яндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачи
Яндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачиЯндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачи
Яндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачи
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 
TT
TTTT
TT
 
Template Toolkit – зло!?
Template Toolkit – зло!?Template Toolkit – зло!?
Template Toolkit – зло!?
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
 
SEO-Audit seo summit websarafan 2016
SEO-Audit seo summit websarafan 2016SEO-Audit seo summit websarafan 2016
SEO-Audit seo summit websarafan 2016
 
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
 

Plus de kuchinskaya

владимир габриелян
владимир габриелянвладимир габриелян
владимир габриелянkuchinskaya
 
чашкин иван
чашкин иванчашкин иван
чашкин иванkuchinskaya
 
сумин андрей
сумин андрейсумин андрей
сумин андрейkuchinskaya
 
митасов роман
митасов романмитасов роман
митасов романkuchinskaya
 
кренин владимир
кренин владимиркренин владимир
кренин владимирkuchinskaya
 
константин лебедев
константин лебедевконстантин лебедев
константин лебедевkuchinskaya
 
дыдыкин егор
дыдыкин егордыдыкин егор
дыдыкин егорkuchinskaya
 
ярослав рабоволюк
ярослав рабоволюкярослав рабоволюк
ярослав рабоволюкkuchinskaya
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридоновkuchinskaya
 
игорь ермаков
игорь ермаковигорь ермаков
игорь ермаковkuchinskaya
 
дмитрий юдин3
дмитрий юдин3дмитрий юдин3
дмитрий юдин3kuchinskaya
 

Plus de kuchinskaya (12)

Kharkov
KharkovKharkov
Kharkov
 
владимир габриелян
владимир габриелянвладимир габриелян
владимир габриелян
 
чашкин иван
чашкин иванчашкин иван
чашкин иван
 
сумин андрей
сумин андрейсумин андрей
сумин андрей
 
митасов роман
митасов романмитасов роман
митасов роман
 
кренин владимир
кренин владимиркренин владимир
кренин владимир
 
константин лебедев
константин лебедевконстантин лебедев
константин лебедев
 
дыдыкин егор
дыдыкин егордыдыкин егор
дыдыкин егор
 
ярослав рабоволюк
ярослав рабоволюкярослав рабоволюк
ярослав рабоволюк
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридонов
 
игорь ермаков
игорь ермаковигорь ермаков
игорь ермаков
 
дмитрий юдин3
дмитрий юдин3дмитрий юдин3
дмитрий юдин3
 

Haritonov