javascript и доступность web-приложений

41
JavaScript и доступность веб- сайтов Владимир Агафонкин

Upload: vladimir-agafonkin

Post on 16-Jun-2015

774 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: JavaScript и доступность web-приложений

JavaScript и доступность веб-

сайтовВладимир Агафонкин

Page 2: JavaScript и доступность web-приложений

Доступность:степень того, насколько возможно пользоваться сайтом как можно более широкой аудитории людей

Page 3: JavaScript и доступность web-приложений

Доступность:степень того, насколько возможно пользоваться сайтом как можно более широкой аудитории людей

независимо от их физических или технических возможностей

Page 4: JavaScript и доступность web-приложений

представьте себесреднестатического пользователя Интернет

Page 5: JavaScript и доступность web-приложений
Page 6: JavaScript и доступность web-приложений

а что, если ты не среднестатический пользователь?

Page 7: JavaScript и доступность web-приложений

технические ограничения

Page 8: JavaScript и доступность web-приложений

• браузер, в котором не поддерживается или отключён JavaScript

• ограниченные или нестандартные устройства ввода/вывода

• ограничение трафика или пропускной способности канала

технические ограничения

Page 9: JavaScript и доступность web-приложений

фи

зи

чески

е

огр

ани

чени

я

Page 10: JavaScript и доступность web-приложений

• зрительной функции (слепота, плохое зрение,

дальтонизм)• двигательных функций (в частности движения рук)

• когнитивные ограничения (нарушения функций памяти,

внимания)

• множество других

физические ограничения

Page 11: JavaScript и доступность web-приложений

как такие люди вообще пользуются Web?

Page 12: JavaScript и доступность web-приложений

вспомогательные технологии

Page 13: JavaScript и доступность web-приложений

• скрин-ридеры• терминалы Брайля• распознаватели речи• экранные увеличители• множество других

вспомогательные технологии

Page 14: JavaScript и доступность web-приложений

• семантическая вёрстка (привет, Вадим :)

• правильное использование JavaScript

как сделать сайт доступным?

Page 15: JavaScript и доступность web-приложений

• навигация (чаще всего строгая зависимость от

мыши)• скрытый контент• оповещение пользователя о

динамических изменениях на странице

• нестандартное поведение браузера

(например, Ajax и кнопки вперёд/назад)

с чем могут быть проблемы при использовании JavaScript?

Page 16: JavaScript и доступность web-приложений

1. предоставить не требующую JavaScript альтернативу всего содержимого и функциональности

2. сделать саму JavaScript-функциональность максимально доступной

два шага к доступности:

Page 17: JavaScript и доступность web-приложений

доступный JavaScript

Page 18: JavaScript и доступность web-приложений

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

a, input, button, textarea, selectdiv.onclick

Page 19: JavaScript и доступность web-приложений

события в JavaScriptустройство-

зависимые• onclick• ondoubleclick• onmouseover• onmouseout• onmousedown• onmouseup• onkeypress• onkeyup• onkeydown

устр.-независимые

• onfocus• onblur• onchange• onselect• onclick* * только для

ссылок и элементов форм

Page 20: JavaScript и доступность web-приложений

2. используйте по возможности только независимые от устройств события

onclick*, onfocus, onblur, onchange, onselect

Page 21: JavaScript и доступность web-приложений

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

onmouseover + onfocusonmouseout + onbluronmouseup + onkeyup

Page 22: JavaScript и доступность web-приложений

4. убедитесь, что на сайте можно попасть куда угодно и сделать что угодно с помощью одной только клавиатуры

Page 23: JavaScript и доступность web-приложений

5. обрабатывайте location.hash (чтобы работали ссылки на любой контент)

website.com/blabla#tab1website.com/blabla#tab2

website.com/gallery#photo1website.com/gallery#photo2

Page 24: JavaScript и доступность web-приложений

6. используйте JS-библиотеки для реализации Ajax history

- Really Simple History- jQuery history plugin- Mootools HistoryManager- YUI Browser History Manager- Dojo dojo.back

Page 25: JavaScript и доступность web-приложений

7. избегайте использования всплывающих окон

<a href=“…” onclick=“window.open(this.href) …

Page 26: JavaScript и доступность web-приложений

8. избегайте использования CSS-only решений для динамической функциональности (например, dropdown menus)

они обычно работают только с мышью

Page 27: JavaScript и доступность web-приложений

как сделать сайт с кучей JavaScript-кода

работающим без него?

Page 28: JavaScript и доступность web-приложений

1.graceful degradation2.progressive enhancement

два подхода к разработке:

Page 29: JavaScript и доступность web-приложений

graceful degradation:«плавное упрощение»

доработка полной версии сайта для функционирования без JavaScript в отдельных местах

Page 30: JavaScript и доступность web-приложений

progressive enhancement:

1. создать полноценную версию сайта без JavaScript

2. заменить с помощью JavaScript стандартное поведение улучшенным (динамическим)

Page 31: JavaScript и доступность web-приложений

unobtrusive Javascript(ненавязчивый JavaScript)

как совершать эту замену?

Page 32: JavaScript и доступность web-приложений

1. поместить весь JS во внешние файлы

2. привязывать функциональность к событиям DOM-элементов

unobtrusive JavaScript:

Page 33: JavaScript и доступность web-приложений

window.onload = function() {var form = document.getElementById('comment-

form');form.onsubmit = function() {

doSomeBrilliantAjaxyStuff();...return false; //отмена действия по

умолчанию}

}

банальный пример:

Page 34: JavaScript и доступность web-приложений

$(function() {$(‘comment-form’).bind(‘submit’,

function(e) {doSomeBrilliantAjaxyStuff();...e.preventDefault();

})})

пример с jQuery:

Page 35: JavaScript и доступность web-приложений

напоследок

Page 36: JavaScript и доступность web-приложений

люди бывают разные

Page 37: JavaScript и доступность web-приложений
Page 38: JavaScript и доступность web-приложений
Page 39: JavaScript и доступность web-приложений
Page 40: JavaScript и доступность web-приложений

дайте каждому шанс

воспользоваться вашим сайтом

Page 41: JavaScript и доступность web-приложений

спасибо!вопросы?

[email protected]