|
Этот текст является неофициальным переводом документа W3C и не имеет той же силы, что и оригинал. Заметка W3C от 6 ноября 2000 г.
Copyright1999 - 2000 W3C (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. РезюмеЗдесь объясняются приемы создания доступных каскадных таблиц стилей (CSS), определенных рекомендациями W3C «CSS Level 1» [CSS1] и «CSS Level 2» [CSS2]. Этот документ создан для того, чтобы помочь авторам веб-контента, которые хотят достичь соответствия правилам «Руководства по созданию доступного веб-контента» («Web Content Accessibility Guidelines 1.0») [WCAG10], однако перечисленные здесь приемы не гарантируют полной доступности контента и не могут считаться единственным направлением в обеспечении доступности. Текст входит в серию публикаций по приёмам создания доступного веб-контента, информацию о других документах в серии вы найдете в [WCAG10-TECHS]. Примечание. Здесь содержится ряд примеров, которые показывают доступные решения в CSS, но и также плохие примеры, показывающие, что разработчики контента делать не должны. Плохие примеры особо выделены и читатели должны относиться к ним с осторожностью. Статус этого документаДанная версия от 6 ноября 2000 г. была издана для исправления некоторых устаревших ссылок. Она является публикацией в серии заметок, разработанных и одобренных рабочей группой WCAG, но она не выносилась на рассмотрение и утверждение другими членами W3C. Набор документов заменяет один прежний текст Techniques for Web Content Accessibility Guidelines 1.0, темы прежней публикации были распределены по документам о конкретных технологиях. Хотя рекомендация WCAG 1.0 [WCAG10] является стабильным документом, этот набор взаимодополняющих текстов предполагается редактировать по мере изменения технологий и появления более эффективных приёмов по созданию доступного веб-контента. Доступны история изменений в серии публикаций и список открытых и решённых задач. Просим читателей оставлять комментарии по поводу документа и предлагать решения открытых задач. Пожалуйста, направляйте подробные комментарии по поводу этого документа на адрес рабочей группы w3c-wai-gl@w3.org; архив комментариев находится в открытом доступе. Только английская версия этой спецификации является нормативной, но могут быть доступны переводы документа. Список известных ошибок в тексте оригинала доступен по ссылке http://www.w3.org/WAI/GL/WAI-WEBCONTENT-ERRATA. Замечания по английскому тексту направляйте по адресу wai-wcag-editor@w3.org. Web Accessibility Initiative (WAI) консорциума WWW (W3C) создает различные ресурсы о доступности веб-контента. Это руководство создано в рамках WAI Technical Activity. Цели рабочей группы WCAG объяснены в ее уставе. Список текущих рекомендаций W3C и других технических документов вы можете найти по адресу http://www.w3.org/TR/. Содержание
1. Уменьшите поддержку и увеличьте постоянствоПроверочные пункты в этом разделе: 14.3 Создайте для страниц общий стиль представления [III приоритет].
2. Переопределение стилей пользователемПроверочный пункт в этом разделе: 11.2. Избегайте устаревших приёмов в технологиях W3C [II приоритет]. В целях обеспечения пользовательского контроля над стилями, CSS2 меняет
семантику оператора Пример. P { font-size: 24pt ! important } Значение CSS2 Пример. /* Установить черный текст и белый фон для тела документа. */ BODY { color: black ! important ; background: white ! important } /* Наследовать значения color и background всеми другими элементами, усилив правило при помощи !important. Обратите внимание, это можно по-прежнему переопределить более конкретными пользовательскими стилями */ * { color: inherit ! important ; background: inherit ! important } CSS2 также включает следующие возможности пользовательского контроля:
Например, для рисования жирной черной линии вокруг элемента, на который наведен фокус и красной вокруг активного элемента, можно использовать следующие правила: Пример. :focus { outline: thick solid black } :active { outline: thick solid red } 3. Единицы измеренияПроверочные пункты в этом разделе: 3.4. Используйте относительные единицы измерения вместо абсолютных в значениях атрибутов языка разметки и свойств таблицы стилей [II приоритет]. Приёмы:
Пример. Используйте H1 { font-size: 2em } вместо H1 { font-size: 12pt } Конец примера. Пример. Используйте относительные единицы измерения и процентные отношения. BODY { margin-left: 15%; margin-right: 10%} Конец примера. Пример. Используйте абсолютные единицы измерения, только если известны физические характеристики выходных объектов. .businesscard { font-size: 8pt } Конец примера. 4. Сгенерированный контентПроверочные пункты в этом разделе:
Приёмы:
CSS2 включает несколько средств, позволяющих создавать контент:
Сгенерированный контент может служить отметками, помогающими пользователям осуществлять навигацию по документу и не терять свое положение, если недоступны визуальные ключи к содержимому вроде пропорциональных линеек прокрутки, кадрам с оглавлением, и так далее. Например, следующая пользовательская таблица стилей будет генерировать слова «Конец примера» после каждого примера, выделенного в документе специальным значением класса: Пример. DIV.example:after { content: Конец примера } Также пользователи могут, например, нумеровать параграфы, так чтобы можно было найти свое положение при чтении документа: Пример. P:before { content: counter(paragraph) ". " ; counter-increment: paragraph } 5. ШрифтыПроверочные пункты в этом разделе: 11.2. Избегайте устаревших возможностей технологий W3C [II приоритет]. Приёмы:
Пример. Указывайте общий шрифт в качестве запасного варианта: BODY { font-family: "Gill Sans", sans-serif } Конец примера. Пример. <STYLE type="text/css"> P.important { font-weight: bold } P.less-important { font-weight: lighter; font-size: smaller } H2.subsection { font-family: Helvetica, sans-serif } </STYLE> Конец примера. 6. Стилевые эффекты текстаПроверочные пункты в этом разделе: 7.2. Пока пользовательские агенты позволяют пользователям контролировать мигание, не используйте мигающий контент (такой, который меняет оформление с постоянной частотой, например, показывает и скрывает элементы) [II приоритет]. Для применения к тексту стилей используйте следующие свойства CSS2:
Примечание. Если используется мигающий контент (например,
заголовок, появляющийся и пропадающий через одинаковые промежутки времени),
предоставьте способ остановки мигания. В CSS мигание задается с
7. Текст вместо изображенийПроверочные пункты в этом разделе: 3.3. Используйте таблицы стилей для контролирования верстки и представления [II приоритет]. Разработчики контента должны использовать таблицы стилей для оформления текста, а не представлять текст изображениями. Использование текста вместо изображений делает информацию доступной для большего числа пользователей (с синтезаторами речи, дисплеями Брайля, графическими дисплеями, и так далее). Использование CSS также позволит пользователям с большей легкостью менять стили авторов, цвета и размеры шрифта. Если для создания текстовых эффектов необходимо использовать растровые изображения (особый шрифт, преобразование, тени и т. д.), растр должен быть доступным (см. разделы текстовые заменители и альтернативные страницы). Пример. В этом примере вставленное изображение показывает большие красные буквы
«пример», и сделано доступным
при помощи атрибута <P>Вот <IMG src="BigRedExample.gif" alt="пример"> того, что мы имеем в виду. </P> Конец примера. 8. Форматирование и положение текстаПроверочные пункты в этом разделе: 3.3. Используйте таблицы стилей для контролирования верстки и представления [II приоритет]. Следующие свойства CSS2 можно использовать для контроля форматирования и позиции текста:
Следующий пример показывает, как использовать таблицы стилей для создания эффекта буквицы: Пример. <HEAD> <TITLE>Drop caps</TITLE> <STYLE type="text/css"> .dropcap { font-size : 120%; font-family : Helvetica } </STYLE> </HEAD> <BODY> <P><SPAN class="dropcap">Ж</SPAN>или-были… </BODY> Примечание. На момент написания документа псевдоэлемент CSS
9. Цвета9.1 Цветовой контрастПроверочные пункты в этом разделе:
Приёмы:
Пример. Используйте числовые значения, а не названия цветов: H1 {color: #808000} H1 {color: rgb(50%,50%,0%)} Конец примера. Плохой пример. H1 {color: red} Конец примера. Используйте следующие свойства CSS для задания цветов:
Убедитесь, что цвета фона и переднего плана хорошо контрастируют. Если указываете цвет переднего плана, всегда указывайте также и цвет фона (и наоборот). 9.2. Убедитесь, что информация представляется не только цветомПроверочные пункты в этом разделе:
Убедитесь, что информация представляется не только цветом. Например, если вы зарашиваете пользовательский ввод, не пишите «Пожалуйста, выберите элементы, помеченные зеленым». Помимо этого, сделайте информацию доступной через другие стилевые эффекты (например, шрифтов) и через контекст (например, развернутые текстовые ссылки). Например, в этом документе примеры оформлены по умолчанию (таблицами стилей) следующим образом:
Быстрый тест. Для проверки, работает ли документ без цветов, просмотрите его на монохромном мониторе или браузере с отключенными цветами. Также попробуйте включить цветовую схему с черным, белым и четырьмя безопасными серыми цветами и проверьте, что страница остается доступной. Для проверки того, что цветовой контраст достаточен для восприятия людьми с ослабленным восприятием цвета и обладателями мониторов с малой разрешающей способностью, для печати на черно-белом принтере (где фон и цвета представляются оттенками серого). Также попробуйте печатать и снова копировать документ в два-три приёма для проверки того, как ухудшается качество. Это покажет вам, где нужно добавить дополнительные акценты (например, гиперссылки на веб-страницах принято подчеркивать), или где акценты слишком малы и неразличимы для. Для дальнейшей информации о цветах и контрастах обратитесь к [LIGHTHOUSE]. 10. Предоставьте контекстную связь в списках HTMLПроверочные пункты в этом разделе:
Разработчикам контента рекомендуется использовать Следующая таблица стилей CSS2 показывает, как использовать составную
нумерацию вложенных списков, созданных с Пример. <STYLE type="text/css"> UL, OL { counter-reset: item } LI { display: block } LI:before { content: counters(item, "."); counter-increment: item } </STYLE> Конец примера. Пока пользовательскими агентами не будет широко поддерживаться CSS2, либо программы не будут позволять пользователям влиять на отображение списков другими методами, авторам следует предоставить контекстную связь во вложенных списках. Приведенный ниже механизм CSS1 показывает, как спрятать конец списка, если таблицы стилей включены, и сделать видимым, если стили не применены, когда пользовательские таблицы стилей изменяют механизм сокрытия, либо когда CSS не поддерживаются. Пример. <STYLE type="text/css"> .endoflist { display: none } </STYLE> <UL> <LI>Бумага: <UL> <LI>Конверты <LI>Бумага для заметок <LI>Бланки <LI>Плакаты <span class="endoflist">(Конец списка бумаги)</span> </UL> <LI>Пишущие принадлежности: <UL> <LI>Синие ручки <LI>Маркеры <span class="endoflist">(Конец списка пишущих принадлежностей)</span> </UL> <LI>Приспособления для скрепления бумаги: <UL> <LI>Скрепки <LI>Скобы <LI>Завязки <span class="endoflist">(Конец списка приспособлений для скрепления бумаги)</span> </UL> <span class="endoflist">(Конец списка офисных принадлежностей)</span> </UL> Конец примера. Примечание. Этот пример не поможет в случае вложения списков в элементы списков. Приложив немного больше усилий, автор может добавить схожую разметку в конец каждого элемента списка. 11. Разметка, расположение, слои и выравниваниеПроверочные пункты в этом разделе:
Верстку, позиционирование, разбиение на слои и выравнивание следует делать при помощи таблиц стилей (в частности, с использованием плавающих блоков и абсолютного позиционирования CSS):
11.1. Если вам приходится использовать изображения для создания отступовПредоставьте текстовые заменители для всех изображений, включая невидимые и прозрачные. Если разработчики контента не могут использовать таблицы стилей и вынужденны
использовать невидимые или прозрачные изображения (например, с Плохой пример. Авторы не должны использовать пробелы в значениях В моем стихотворении здесь <IMG src="10pttab.gif" alt=" "> нужно поставить большой отступ В следующем примере изображение используется для задания определенной позиции другой графики: <IMG src="spacer.gif" alt="spacer"> <IMG src="colorfulwheel.gif" alt="Колесо фортуны"> Конец примера. 12. Линейки и рамкиПроверочные пункты в этом разделе: 6.1. организуйте документы таким образом, чтобы их можно было читать без таблиц стилей [I приоритет]. Линейки и рамки могут служить разделителями для видящих пользователей, но разделяющая роль не может сохраняться вне визуального контекста. Используйте эти свойства CSS для определения стилей рамок:
Для создания линеек и рамок авторы должны использовать таблицы стилей. Пример. В этом примере элемент <HEAD> <TITLE>Redline with style sheets</TITLE> <STYLE type="text/css"> H1 { padding-top: 1em; border-top: 2px red } </STYLE> </HEAD> <BODY> <H1>Глава 8. Слуховые и тактильные устройства</H1> </BODY> Конец примера. Если линейка (т. е. элемент Пример. В этом примере элемент <DIV class="navigation-bar"> <HR> <A rel="Next" rel="nofollow" target="_blank" href="next.html">[Следующая страница]</A> <A rel="Previous" rel="nofollow" target="_blank" href="previous.html">[Предыдущая страница]</A> <A rel="First" rel="nofollow" target="_blank" href="first.html">[Первая страница]</A> </DIV> Конец примера. 13. Использование позиционирования таблиц стилей и разметки для аккуратного преобразованияПроверочные пункты в этом разделе: 6.1 организуйте документы таким образом, чтобы их можно было читать без таблиц стилей [I приоритет]. Используя свойства позиционирования CSS2, контент можно отобразить в любом месте пользовательского экрана. Порядок появления элементов на экране может отличаться от их порядка следования в исходном документе. Следующий пример показывает некоторые принципы:
Обратите внимание, для каждого позиционируемого объекта определен класс. В
этих примерах вместо Плохой пример. <head><style type="text/css"> .menu1 { position: absolute; top: 3em; left: 0em; margin: 0px; font-family: sans-serif; font-size: 120%; color: red; background-color: white } .menu2 { position: absolute; top: 3em; left: 10em; margin: 0px; font-family: sans-serif; font-size: 120%; color: red; background-color: white } .item1 { position: absolute; top: 7em; left: 0em; margin: 0px } .item2 { position: absolute; top: 8em; left: 0em; margin: 0px } .item3 { position: absolute; top: 9em; left: 0em; margin: 0px } .item4 { position: absolute; top: 7em; left: 14em; margin: 0px } .item5 { position: absolute; top: 8em; left: 14em; margin: 0px } #box { position: absolute; top: 5em; left: 5em } </style></head> <body> <div class="box"> <span class="menu1">Продукты</span> <span class="menu2">Адреса</span> <span class="item1">Телефоны</span> <span class="item2">Компьютеры</span> <span class="item3">Переносные MP3-плееры</span> <span class="item5">Висконсин</span> <span class="item4">Айдахо</span> </div> </body> Конец примера. Когда применятся таблицы стилей, текст размещается в двух колонках. Элементы
класса Когда таблицы стилей не применены, весь текст появляется в одной строке слов «Продукты Адреса Телефоны Компьютеры Переносные MP3-плееры Висконсин Айдахо». Они появляются в порядке, в котором записаны в исходном документе, а значит то, что появляется в качестве заголовков колонок, если таблицы стилей применены, будет первыми фразами, так как они определены в исходной разметке первыми. Следующий пример показывает, как то же самое визуальное представление можно создать в браузере, поддерживающем таблицы стилей, а также создать более осмысленное представление, если стили не применены. К содержимому можно применить структурную разметку (списки определений). Обратите внимание, что нулевые отступы указаны явно, так как в браузерах HTML списки определений отображаются с отступом. Пример. <head><style type="text/css"> .menu1 { position: absolute; top: 3em; left: 0em; margin: 0px; font-family: sans-serif; font-size: 120%; color: red; background-color: white } .menu2 { position: absolute; top: 3em; left: 10em; margin: 0px; font-family: sans-serif; font-size: 120%; color: red; background-color: white } .item1 { position: absolute; top: 7em; left: 0em; margin: 0px } .item2 { position: absolute; top: 8em; left: 0em; margin: 0px } .item3 { position: absolute; top: 9em; left: 0em; margin: 0px } .item4 { position: absolute; top: 7em; left: 14em; margin: 0px } .item5 { position: absolute; top: 8em; left: 14em; margin: 0px } #box { position: absolute; top: 5em; left: 5em } </style></head> <body> <div class="box"> <dl> <dt class="menu1">Продукты</dt> <dd class="item1">Телефоны</dd> <dd class="item2">Компьютеры</dd> <dd class="item3">Переносные MP3-плееры</dd> <dt class="menu2">Адреса</dt> <dd class="item4">Айдахо</span> <dd class="item5">Висконсин</span> </dt> </dl> </div> </body> Конец примера. Когда таблицы стилей применены, это выглядит как прежде. Однако если стили не обработаны, текст появляется не в строке слов, а списке определений. То, что было заголовками колонок, появится в виде определяемых терминов. 14. Использование движения в таблицах стилей и скриптахПроверочные пункты в этом разделе: 7.3. Пока пользовательские агенты не позволяют пользователям останавливать движущийся контент, избегайте в страницах движения [II приоритет]:
15. Звуковые таблицы стилейПроверочные пункты в этом разделе: 11.3. Предоставьте такую информацию, чтобы пользователи могли получать документы в соответствии со своими настройками (такими как язык, тип содержимого и т. д.) [III приоритет]. Звуковые свойства CSS2 предоставляют информацию для незрячих пользователей и
пользователей голосовых браузеров примерно так же, как шрифты предоставляют
визуальную информацию. Следующий пример показывает, как различные параметры
звука (включая Пример. H1 { voice-family: paul; stress: 20; richness: 90; cue-before: url("ping.au") } Следующие звуковые свойства входят в CSS2:
Кроме того, свойство 16. Доступ к альтернативным представлениям контентаПроверочные пункты в этом разделе: 11.3. Предоставьте такую информацию, чтобы пользователи могли получать документы в соответствии со с своими настройками (такими как язык, тип содержимого и т. д.) [III приоритет]. CSS2 предоставляет доступ к альтернативным представлениям контента, указанным в значениях атрибутов, при совместном использовании следующих элементов:
В следующем примере значение атрибута Пример. IMG:after { content: attr(alt) } Обратите внимание, что значение атрибута отображается даже если не показано само изображение (например, пользователь отключил изображения в настройках браузера). 17. Типы устройствПроверочные пункты в этом разделе: 11.3. Предоставьте такую информацию, чтобы пользователи могли получать документы в соответствии со с своими настройками (такими как язык, тип содержимого и т. д.) [III приоритет]. Типы устройств CSS2 (используемые с правилами @media) позволяют авторам и
пользователям разрабатывать таблицы стилей, которые позволяют корректно
обрабатывать документы на конкретных целевых устройствах. Эти таблицы стилей
могут приспосабливать контент для представления на устройствах Брайля, голосовых
синтезаторах, телетайпах. С правилами 18. СсылкиПоследние версии любой спецификации W3C можно найти в перечне технических отчетов W3C по адресу http://www.w3.org/TR/.
19. РесурсыПримечание. W3C не гарантирует стабильность ссылок на ресурсы. Ссылки приведены для удобства. Ссылки на продукты не являются продвижением продуктов. 19.1. Другие руководства
19.2. Ресурсы по доступности контента
20. Благодарности
|
|||||||||
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети