По состоянию на 29 декабря 2006 года этот метод отключен в этой вики. Класс hiddenStructure все еще существует в CSS , но теперь он обводит текст зеленым цветом, а не скрывает его. Это необходимо для поиска оставшихся экземпляров hiddenStructure в шаблонах. Обратите внимание, что это отключает только использование класса CSS hiddenStructure. Это не препятствует использованию похожих тегов, таких как display: none или vision: hidden . Они все еще вызывают проблемы с доступностью и должны использоваться с осторожностью (см. раздел «Другие применения» ниже). |
Эта страница была закрыта по общему согласию сообщества и сохранена только для исторической справки. Если вы хотите возобновить обсуждение статуса этой страницы, обратитесь за поддержкой сообщества на форум, например village pump . |
Используя каскадные таблицы стилей (CSS), можно скрыть текст в шаблонах популярных веб-браузеров , в зависимости от пустоты параметра шаблона. Пожалуйста, не используйте это. На этой странице описан конкретный весьма спорный метод достижения этого.
Брайон ВИББЕР [1], ведущий разработчик MediaWiki , описывает некоторые проблемы со hiddenStructure.
...он использует CSS-хак для сокрытия структурных элементов, что может не сработать для текстовых браузеров, текстовых рендеров статей и любого HTML-отображения статьи, которое не использует таблицу стилей на этом сайте. Это вредит как доступности основного сайта, так и повторному использованию материала за пределами сайта.
Graham87 [2], слепой Википедист, обсуждает программное обеспечение для чтения с экрана и его ограничения, а также заявляет, что, по его мнению, нам не следует использовать CSS-хаки.
...Я настоятельно рекомендую не использовать CSS-хаки, поскольку значительное количество людей будут использовать старые программы чтения с экрана и, возможно, не смогут обновиться.
Этот метод основан на существовании класса CSS "hiddenStructure". Для en:wiki это определено в MediaWiki:Common.css как (редакция от 20:50, 17 января 2006 г.):
/* hiddenStructure из Monobook - позволяет выборочно скрывать разметку в шаблонах */ . hiddenStructure { display : none ; speak : none ; }
Любой текст, содержащийся в конструкции HTML, <div class="hiddenStructure">text to hide</div>
скрыт. Класс также может быть применен к любому элементу XHTML , например <span> и строкам wikitable ( |- ).
Эта функция затем объединяется с функцией параметра по умолчанию для достижения избирательного скрытия текста в зависимости от пустоты параметра шаблона. Вот пример простой таблицы, которая может быть частью шаблона. если "параметр" оставить пустым, class{{{parameter|}}}
преобразуется в просто class
, завершая вызов CSS, как указано выше. Для любого значения "параметра" стиль становится бессмысленным и удаляется программным обеспечением MediaWiki, делая строку таблицы видимой, а также данные.
{| |- класс {{{ параметр |}}} = "hiddenStructure" ! Заголовок | {{{ параметр |}}} |}
Этот метод не скрывает текст ни от каких браузеров, не поддерживающих CSS (включая текстовые браузеры, такие как Lynx ), ни от пользователей многих типов экранных ридеров и другого программного обеспечения для обеспечения доступности. Страницы, использующие этот метод, также не отображаются должным образом при копировании на другие сайты, которые не были настроены на использование класса 'hiddenStructure', включая Википедии на иностранных языках и, возможно, некоторые зеркала Википедии. Поэтому важно, чтобы шаблон был читаемым и имел смысл для того, кто использует такой браузер . Если страница зависит от этого метода, чтобы иметь смысл, то она нарушит контрольную точку доступности WAI priority 1. Некоторые распространенные ошибки включают чрезмерное использование этого, отмечая каждую строку в информационном поле как необязательную или используя этот метод для скрытия знаков препинания вокруг необязательного параметра.
Проблема с использованием hiddenStructure заключается в том, что он скрывает строки нестандартным способом. В то время как другие веб-сайты скрывают данные, просто не отправляя их с сервера [1] , hiddenStructure откладывает этот процесс сокрытия на клиента. Из-за этого некоторые браузеры, не поддерживающие или несовместимые с CSS, неправильно отображают страницы, используя этот хак (см. рисунки справа).
Некоторые страницы минимизируют ущерб, отображая параметр только в том случае, если он на самом деле непустой (используя синтаксис {{{parameter|}}}
). Таким образом отображается только строка, а не уродливое имя параметра {{{parameter}}}. Конечно, в шаблонах с большим количеством условных строк это все равно приводит к отображению ненужных данных в браузерах, несовместимых с CSS.
Из-за этих проблем многие статьи плохо отображаются для людей с ограниченными возможностями. В худшем случае читателю отображается/считывается ряд параметров Wiki-разметки. В лучшем случае отображается/считывается ряд пустых строк.
По этим причинам не следует использовать hiddenStructure .
Сноска:
Решения, в порядке предпочтения, следующие.
if=
). Кроме того, если и когда в MediaWiki реализованы условные операторы, может быть сложнее найти и заменить шаблоны, использующие этот метод. Наконец, шаблоны, использующие Weeble, как правило, самые уродливые с точки зрения кода.Другие возможные решения, которые нецелесообразны, включают:
Одно из нескольких принятых применений CSS display: none
— скрыть кладжи, вставленные только для устаревших браузеров, от современных браузеров. Типичный пример — кнопки сброса ; ни один современный браузер не нуждается в этом, так как пользователи могут очищать текстовые области локально. Устаревшие браузеры не предлагают эту функцию и зависят от кнопки сброса . Пользователи, нажимающие кнопку сброса непреднамеренно, потеряют свои изменения в форме. Скрытая кнопка сброса , видимая только в устаревших браузерах, позволяет избежать этой проблемы.
Другие примеры — это приложения, специфичные для медиа : эмотиконы (смайлики) как ASCII-арт, возможно, бесполезны для речевых браузеров, их можно скрыть там, возможно, предлагая WAV. Иногда информация об авторских правах может быть ограничена печатным выводом. Информация, обычно доступная только для визуальных браузеров с мышью, может быть дополнительно отображена как обычный текст, скрытый от большинства выходных носителей, за исключением текста, печати и речи. Похожая концепция — <noscript>
элемент.