Улучшения доступности многоуровневых раскрывающихся списков

Я пытаюсь создать многоуровневое раскрывающееся меню со следующим кодом:

<nav role="navigation" class="navigation">
    <ul>
        <li><a href="index.html">Home</a>

        </li>
        <li><a href="about.html">About</a>

            <ul>
                <li><a href="company.html">Company</a>
                    <ul>
                        <li><a href="#">Brands</a></li>
                        <li><a href="#">Stuff</a></li>
                        <li><a href="#">More Stuff</a></li>
                    </ul>
                </li>
                <li><a href="team.html">Team</a>

                </li>
                <li><a href="goals.html">Goals</a>

                </li>
                <li><a href="photos.html">Photos</a>

                </li>
            </ul>
        </li>
        <li><a href="portfolio.html">Portfolio</a>

            <ul>
                <li><a href="company.html">Chairs</a>

                </li>
                <li><a href="team.html">Beds</a>

                </li>
                <li><a href="goals.html">Fireplace</a>

                </li>
                <li><a href="photos.html">Onother</a>

                </li>
            </ul>
        </li>
        <li><a href="portfolio.html">Portfolio</a>

        </li>
    </ul>
</nav>

С помощью некоторого jQuery я скрыл все элементы второго/третьего уровня и добавил класс, который будет отображать «+» справа с помощью CSS.

Демонстрация: http://jsfiddle.net/ZJug9/1/

Это прекрасно работает для большинства пользователей, но когда я пытаюсь использовать это с VoiceOver на Mac, я просто не могу найти способ навигации. Может быть, потому что я не все знаю о VoiceOver или я делаю что-то не так с HTML и JS.

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

Любые современные инструменты или документация, которые помогут мне ускорить доступность. Я думаю, что веб-сайт доступности W3C слишком загроможден и запутан. Я тоже кое-что читал об Aria, но документация действительно сложна, и некоторые люди говорят, что достаточно использовать правильную разметку.

Пожалуйста, попробуйте ответить для этого примера

ОБНОВЛЕНИЕ Я добавил скрытую видимость к скрытым ul, поскольку программа чтения с экрана не озвучивает невидимые элементы, и я по-прежнему смогу использовать CSS3 для перехода высоты. Демонстрация 2: http://jsfiddle.net/ZJug9/3/


person Adrian Florescu    schedule 07.02.2014    source источник
comment
сделать событие фокуса для всех расширителей, которое делает то же самое, что и щелчок, за исключением того, что сначала оно скрывает все открытые расширители. также используйте display:none, чтобы вывести скрытые элементы из последовательности вкладок.   -  person dandavis    schedule 08.02.2014
comment
@dandavis - я заметил, что использование только высоты для скрытия элементов не скроется от программы чтения с экрана. Спасибо!   -  person Adrian Florescu    schedule 08.02.2014
comment
у вас все еще есть проблема с обновленной демоверсией? (работает на меня)   -  person dandavis    schedule 08.02.2014
comment
@dandavis - нет, у меня работает нормально, но я хочу получить ответы от парней, которые используют этот тип навигации. Я также думаю, что вы можете сделать что-то с арией, например «Вместо ссылки «О нас +», чтобы сказать «Развернуть элементы навигации о нас».   -  person Adrian Florescu    schedule 08.02.2014
comment
используйте заголовок для описания функциональности. aria-described-by и aria-labelled-by — это излишество для такого простого виджета.   -  person dandavis    schedule 08.02.2014
comment
@dandavis - круто, спасибо. Прочитав немного, я испугался, что мне придется делать гораздо больше работы. Вся документация по арии меня очень пугает. Что я сделал, так это начал изучать Mac Voice Over, и похоже, что это приложение действительно умное и простое в использовании, когда вы изучаете все сочетания клавиш.   -  person Adrian Florescu    schedule 08.02.2014
comment
давайте продолжим это обсуждение в чате   -  person Adrian Florescu    schedule 08.02.2014