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

Презентация:



Advertisements
Похожие презентации
Ненавязчивый Unobtrusive JavaScript Сергеев Алексей «Открытые Веб-Технологии»
Advertisements

Управление IT- сервисами и контентом Лекция 5. Статические Содержимое запрашиваемого ресурса в неизмененном виде попадает на компьютер пользователя, выводится.
Технология сетевого дизайна и ее программное обеспечение Лекция 5 CSS3. Создание элементов интерфейса с помощью CSS.
Лекция 8 Обработка событий. Примеры привязки обработчиков событий Привязка с помощью атрибута обработчика: ; Информация о модели DOM консорциума W3C Привязка.
JavaScript Лекция 8. JavaScript JavaScript - новый язык для составления скриптов, разработанный фирмой Netscape. С помощью JavaScript можно легко создавать.
Разгони свой сайт Лекция 7: «Ненавязчивый» JavaScript Мациевский Николай 1 / 22 webo.in.
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
JS, or not JS, вот в чем вопрос Фитискин Александр веб-технолог студия «Dominion»
Богданов Марат Робертович Современные веб-технологии. Подробный курс Введение в язык программирования JavaScript.
Программирование в Mozilla По материалам сайта. Добавление Javascript в XUL-страницы Добавление страниц с текстом на Javascript происходит точно так же,
jQuery jQuery библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу.
JavaScript: Функции.. Функция – это группа операторов, предназначенных для определенной цели и объединенных под общим именем. Функция имеет следующий.
JavaScript Объекты документа Объект History Свойства: current next previous length.
Технология сетевого дизайна и её программное обеспечение Лекция 10.
Действия выполняются в момент загрузки кода в браузер Действия выполняются в момент щелчка на ссылке.
Независимая система управления веб-содержимым Анисимов А. О. Под руководством Васючковой Т. С.
Обеспечение доступа к сайтам людей с ограниченными возможностями.
Открытое занятие по дисциплине «Web-программирование»
Объектная модель DOM javascript. Иерархия классов.
Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap для iPad Олег Неклюдов.
Транксрипт:

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

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

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

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

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

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

браузер, в котором не поддерживается или отключён JavaScript ограниченные или нестандартные устройства ввода/вывода ограничение трафика или пропускной способности канала технические ограничения

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

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

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

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

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

семантическая вёрстка (привет, Вадим :) правильное использование JavaScript как сделать сайт доступным?

навигация (чаще всего строгая зависимость от мыши) скрытый контент оповещение пользователя о динамических изменениях на странице нестандартное поведение браузера (например, Ajax и кнопки вперёд/назад) с чем могут быть проблемы при использовании JavaScript?

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

доступный JavaScript

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

события в JavaScript устройство- зависимые onclick ondoubleclick onmouseover onmouseout onmousedown onmouseup onkeypress onkeyup onkeydown устр.-независимые onfocus onblur onchange onselect onclick* * только для ссылок и элементов форм

2. используйте по возможности только независимые от устройств события onclick*, onfocus, onblur, onchange, onselect

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

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

5. обрабатывайте location.hash (чтобы работали ссылки на любой контент) website.com/blabla#tab1 website.com/blabla#tab2 website.com/gallery#photo1 website.com/gallery#photo2

6. используйте JS-библиотеки для реализации Ajax history - Really Simple History - jQuery history plugin - Mootools HistoryManager - YUI Browser History Manager - Dojo dojo.back

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

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

как сделать сайт с кучей JavaScript-кода работающим без него?

1. graceful degradation 2. progressive enhancement два подхода к разработке:

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

progressive enhancement: 1. создать полноценную версию сайта без JavaScript 2. заменить с помощью JavaScript стандартное поведение улучшенным (динамическим)

unobtrusive Javascript (ненавязчивый JavaScript) как совершать эту замену?

1. поместить весь JS во внешние файлы 2. привязывать функциональность к событиям DOM-элементов unobtrusive JavaScript:

window.onload = function() { var form = document.getElementById('comment-form'); form.onsubmit = function() { doSomeBrilliantAjaxyStuff();... return false; //отмена действия по умолчанию } банальный пример:

$(function() { $(comment-form).bind(submit, function(e) { doSomeBrilliantAjaxyStuff();... e.preventDefault(); }) пример с jQuery:

напоследок

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

дайте каждому шанс воспользоваться вашим сайтом

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