Я склонен использовать
#skip-to-nav, #skip-to-content
{
position: absolute;
right: 100%;
}
И я убедился, что ссылки # skip-to-nav и # skip-to-content находятся в элементе body
.
Drupal 7 использует:
/**
* Hide elements visually, but keep them available for screen-readers.
*
* Used for information required for screen-reader users to understand and use
* the site where visual display is undesirable. Information provided in this
* manner should be kept concise, to avoid unnecessary burden on the user.
* "!important" is used to prevent unintentional overrides.
*/
.element-invisible {
position: absolute !important;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
/**
* The .element-focusable class extends the .element-invisible class to allow
* the element to be focusable when navigated to via the keyboard.
*/
.element-invisible.element-focusable:active,
.element-invisible.element-focusable:focus {
position: static !important;
clip: auto;
}
Я протестировал обе программы для чтения с экрана, и они, похоже, отлично работают для всех, кто не видит экран.
Что касается порядка табуляции, я не беспокоюсь о том, что пользователь вкладывает вкладку в элемент, который он не видит. Я, вероятно, должен, но я считаю, что подавляющее большинство пользователей в любом случае не используют клавишу табуляции. Те, кто, как правило, лучше понимают, что происходит, так что, ИМХО, это становится спорным.
Изменить, чтобы добавить:
После некоторого обсуждения с @discojoe я решил немного подробнее рассмотреть, что использует drupal 7 для сокрытия / показа содержимого, и соответственно обновил код.