BrowserNav (Навигация по обзору)
- Автор: 'Tony Malykh
- Исходный код дополнения: Посетить Web-сайт browsernav
Краткое описание
Дополнение BrowserNav предоставляет пользователям NVDA мощные навигационные команды в режиме обзора. Оно работает в веб-браузерах, а также в любых других приложениях, поддерживающих режим обзора NVDA, таких как документы Word и почтовые клиенты.
BrowserNav можно использовать для навигации по горизонтальному смещению от левого края экрана, по размеру шрифта или по стилю шрифта.
При навигации по горизонтальному смещению можно легко найти абзацы, выровненные по вертикали на странице.
В частности, вы можете нажать NVDA+Alt+Стрелка вниз или Стрелка вверх, чтобы перейти к следующему или предыдущему абзацу с таким же смещением.
Например, это может быть полезно при просмотре иерархических деревьев комментариев (например, на reddit.com), чтобы переходить между комментариями первого уровня и пропускать все комментарии более высокого уровня.
При навигации по размеру шрифта вы можете легко найти абзацы, написанные одинаковым размером шрифта или меньшим/большим размером шрифта.
Вы также можете ориентироваться по размеру шрифта с ограничением на тот же стиль шрифта.
Для переключения между этими вариантами используется ротор BrowserNav. В зависимости от настройки этого ротора, BrowserNav будет сигнализировать либо о горизонтальном смещении, либо о размере шрифта выбранного в данный момент элемента. Кроме того, BrowserNav будет издавать короткий звук при выполнении команд Быстрой навигации, чтобы показать, сколько текста было пропущено (эта функция доступна только в Google Chrome и Firefox).
BrowserNav работает в любом браузере, поддерживаемом NVDA. Хотя некоторые функции могут быть доступны не во всех браузерах. BrowserNav также работает в других приложениях, поддерживающих режим обзора NVDA, таких как документы Word и почтовые клиенты.
Основная информация
Название | Версия | Совместимость с API NVDA | Последняя протестированная версия NVDA | Минимальная версия NVDA | Дата загрузки в каталог | Размер | Лицензия |
---|---|---|---|---|---|---|---|
browsernav | 2.6 | 2024.1 | 2024.1.0 | 2024.1.0 | 30-05-2024 00:02:11 | 23319 Кб. | GPL v2 |
Информация о локализации на русский язык
🔝 Назад к оглавлениюСкачать
⬇ Перейти к истории версий 🔝 Назад к оглавлениюРазделы
🔝 Назад к оглавлениюСправка
Подробнее
BrowserNav (Навигация по обзору)
Дополнение BrowserNav предоставляет пользователям NVDA мощные навигационные команды в режиме обзора. Оно работает в веб-браузерах, а также в любых других приложениях, поддерживающих режим обзора NVDA, таких как документы Word и почтовые клиенты.
Скачать
Пожалуйста, установите дополнение через магазин дополнений.
Использование в браузерах и других программах, поддерживающих режим обзора
Обратите внимание, что начиная с NVDA 2024.2, команды вертикальной навигации и навигации в том же стиле теперь доступны в ядре NVDA. Предпочтительнее использовать встроенные команды. Они не имеют жестов по умолчанию, поэтому жесты должны быть назначены пользователем в диалоге ввода жестов.
BrowserNav можно использовать для навигации по горизонтальному смещению от левого края экрана, по размеру шрифта или по стилю шрифта.
- При навигации по горизонтальному смещению можно легко найти абзацы, выровненные по вертикали на странице. В частности, вы можете нажать NVDA+Alt+Стрелка вниз или Стрелка вверх, чтобы перейти к следующему или предыдущему абзацу с таким же смещением. Например, это может быть полезно при просмотре иерархических деревьев комментариев (например, на reddit.com), чтобы переходить между комментариями первого уровня и пропускать все комментарии более высокого уровня.
- При навигации по размеру шрифта вы можете легко найти абзацы, написанные одинаковым размером шрифта или меньшим/большим размером шрифта.
- Вы также можете ориентироваться по размеру шрифта с ограничением на тот же стиль шрифта.
Для переключения между этими вариантами используется ротор BrowserNav. В зависимости от настройки этого ротора, BrowserNav будет сигнализировать либо о горизонтальном смещении, либо о размере шрифта выбранного в данный момент элемента. Кроме того, BrowserNav будет издавать короткий звук при выполнении команд Быстрой навигации, чтобы показать, сколько текста было пропущено (эта функция доступна только в Google Chrome и Firefox).
BrowserNav работает в любом браузере, поддерживаемом NVDA. Хотя некоторые функции могут быть доступны не во всех браузерах. BrowserNav также работает в других приложениях, поддерживающих режим обзора NVDA, таких как документы Word и почтовые клиенты.
Сочетание клавиш:
- NVDA+Alt+Стрелка вверх или Стрелка вниз: Переход к предыдущему или следующему абзацу с тем же горизонтальным смещением или размером шрифта.
- NVDA+Alt+Home или NVDA+alt+Стрелка влево: Переход к предыдущему абзацу с меньшим смещением или большим размером шрифта (родительский абзац).
- NVDA+Alt+End или NVDA+Control+alt+Стрелка влево: Переход к следующему абзацу с меньшим смещением или большим размером шрифта (следующий родительский абзац).
- NVDA+Alt+Страница вниз или NVDA+Alt+Стрелка вправо: Переход к следующему абзацу с большим смещением или меньшим размером шрифта (дочерний абзац).
- NVDA+Alt+Страница вверх или NVDA+Control+Alt+Стрелка вправо: Переход к предыдущему абзацу с большим смещением или меньшим размером шрифта (предыдущий дочерний абзац).
- NVDA+O: переключение настроек ротора между горизонтальным смещением, размером шрифта, размером шрифта со стилем шрифта.
- \\ или Shift+\\ (обратная косая черта): Прокрутка вверх или вниз для раскрытия каждого элемента страницы; может быть полезна на динамических веб-страницах для загрузки всех элементов; также может быть полезна на веб-страницах с бесконечной прокруткой для загрузки следующего фрагмента.
- NVDA+Shift+Левая стрелка: Возврат к предыдущему местоположению курсора в текущем документе.
- NVDA+E: редактирование полудоступных полей редактирования - см. соответствующий раздел ниже.
- T или Shift+T: переход к следующей или предыдущей таблице, но установка курсора в первую ячейку. Иногда NVDA помещает курсор прямо перед первой ячейкой, и BrowserNav исправляет это поведение.
Закладки Быстрый переход
Закладки BrowserNav Быстрый переход - это мощный инструмент, позволяющий перемещаться по веб-страницам и автоматизировать некоторые повторяющиеся действия.
Клавиши закладок
- NVDA+J: показать всплывающее меню Быстрый переход.
- J или Shift+J: переход к следующей или предыдущей закладке Быстрый переход.
- / и Control+/: Переключение режима Пропустить беспорядок для навигации по строке (стрелки вверх и вниз) и по абзацу (стрелки Control+Вверх и Control+Вниз) соответственно.
- Alt+J: щелкнуть по всем закладкам Быстрое нажатие на текущей странице.
- Control+J: проговорить все закладки Быстро прочитать на текущей странице.
- Alt+1, Alt+2, ..., Alt+0: переход к следующей иерархической закладке соответствующего уровня. 0 соответствует уровню 10.; альтернативно, вызов числового сценария, если он определен.
- Shift+Alt+1, Shift+Alt+2, ..., Shift+Alt+0: переход к предыдущей иерархической закладке.
- Alt+
или Shift+Alt+
: переход к следующей или предыдущей иерархической закладке любого уровня.
Вы также можете настроить пользовательские сочетания клавиш для большинства типов закладок (кроме Пропустить беспорядок, иерархический и числовой сценарий).
Сайты
Первое, что вам нужно настроить, - это сайт, на котором вы хотите создавать закладки. В большинстве случаев вы хотите указать тип соответствия: «Соответствие домену» или «Соответствие домену и его поддоменам». Чтобы проиллюстрировать последний вариант, вы можете указать:
- URL: amazon.com
- Тип соответствия: Соответствовать домену и его поддоменам
- В этом случае будут совпадать домены amazon.com, smile.amazon.com и все остальные домены *.amazon.com.
Если вам нужен более тонкий контроль, вы также можете указать точный URL или определить регулярное выражение для URL.
Благодаря такому гибкому определению на каждой конкретной веб-странице могут быть одновременно активны несколько сайтов Быстрый переход.
Типы закладок
После того как вы настроили определение сайта, вы можете перейти к определению закладок на нем.
BrowserNav поддерживает несколько типов закладок:
- Закладки QuickJump (Быстрый переход): вы можете перейти к ним, нажав J или Shift+J.
- Закладки SkipClutter (Пропустить беспорядок): Эти закладки автоматически пропускаются при навигации по строке (стрелки вверх/вниз) или по абзацу (стрелки Control+Вверх/Вниз). Это позволяет скрыть беспорядок на веб-страницах, такой как пустые строки, временные метки и любую другую лишнюю информацию. Информация не удаляется полностью, SkipClutter можно временно отключить с помощью команд / или Control+/. По умолчанию SkipClutter пропускает пустые абзацы на всех сайтах.
- Закладки QuickClick (Быстрое нажатие): вы можете отметить кликабельные элементы, такие как ссылки, кнопки или флажки, в качестве закладок QuickClick. Тогда, нажав Alt+J, вы сможете быстро нажать все QuickClick-закладки на текущей странице одним нажатием клавиши, не перемещая курсор. Это может пригодиться для нажатия часто используемой кнопки на сайте, например кнопки воспроизведения на YouTube или кнопки отключения звука на сайтах видеоконференций.
- Закладки QuickSpeak (Быстро прочитать): вы можете прочитать этот тип закладок, нажав клавиши Control+J; курсор при этом не перемещается. Это удобно для проверки часто изменяемых элементов страницы. Вы также можете настроить закладку quickClick как автообновляемую, то есть BrowserNav будет периодически сканировать страницу и автоматически говорить, если совпадающий текст изменится.
- Иерархические закладки: это похоже на закладки quickJump, но здесь учитывается горизонтальное смещение закладки. На таких сайтах, как Reddit и Hacker News, есть иерархическое дерево комментариев, в котором пользователям экранных читалок было довольно сложно эффективно ориентироваться. На этих сайтах вы можете пометить комментарии как иерархические закладки и затем перемещаться между ними, нажимая Alt+Цифра или Shift+Alt+Цифра, где Цифра означает номер строки 1,2,3,...0 - это уровень комментария. По умолчанию в BrowserNav настроены иерархические закладки для Hacker News и reddit.com.
- Закладки для скриптов: Просто выполняют указанный скрипт при вызове.
- Числовой скрипт: нажмите Alt+0 - Alt+9, чтобы выполнить скрипт, принимающий на вход число. Это может быть удобно, например, для перехода к
i
-й закладке на странице одним нажатием клавиши.
Создание новой закладки
После того, как вы настроили сайт, самый простой способ создать новую закладку - перейти к нужному абзацу в документе, нажать NVDA+J для отображения контекстного меню закладок и выбрать Закладки > Создать новую закладку для сайта...
Откроется диалог настройки закладок. Теперь вы можете настроить закладку. Вы можете изменить способ сопоставления текста (например, сопоставление строк или регулярное выражение).
Другие параметры в этом диалоге:
- Категория: определяет тип закладки.
- Отображаемое имя: дополнительное имя закладки для лучшей читаемости. Это просто дает лучшее имя, чтобы вы могли идентифицировать эту закладку в длинном списке закладок.
- Произносимое сообщение при нахождении закладки: необязательное сообщение, которое должно произноситься каждый раз, когда вы нажимаете на эту закладку в документе.
- Смещение в параграфах: после нахождения подходящего текста BrowserNav сместит курсор на столько-то параграфов вперед или назад. Это может быть полезно, например, если целевой текст, к которому вы хотите перейти, не содержит обычного текста, который можно сопоставить (например, сообщение на форуме), но предыдущий абзац содержит подходящее слово (например, поднять голос). В этом случае можно подобрать слово поднять голос и указать offset=1, чтобы поместить курсор на первый абзац сообщения, а не на слово поднять голос.
- Атрибуты: разделенный пробелами список атрибутов абзаца, которые будут сопоставляться. Список доступных атрибутов для текущего абзаца доступен в следующем поле формы. Список атрибутов предварительно заполнен некоторыми общими ролями, и обычно вам не нужно его редактировать.
- Доступные атрибуты в текущем абзаце: это все атрибуты, найденные в текущем абзаце. Вы можете выбрать их и нажать Пробел, чтобы добавить их в список подходящих атрибутов.
Дополнительные параметры сайта
В диалоге конфигурации сайта вы можете указать ряд дополнительных опций:
- Отображаемое имя: необязательное отображаемое имя для лучшей читаемости в списке сайтов.
- Режим фокусировки: позволяет переопределить стандартную обработку событий фокусировки в NVDA. Некоторые сайты неправильно используют события фокусировки. Чтобы использовать их более удобно, вы можете либо игнорировать события фокусировки, либо отключить автоматический переход в режим фокусировки при получении события фокусировки.
- Режим живого региона: Некоторые сайты злоупотребляют живыми регионами. Эта опция позволяет отключить объявления о живых регионах только для текущего сайта.
- Режим отладочного звукового сигнала: этот режим в основном подходит для отладочных целей. Вы можете заставить NVDA издавать звуковой сигнал при наступлении определенного события (фокус, обновление живого региона или успешный QuickClick).
Сценарии
Начиная с BrowserNav v2.5 вы можете настраивать закладки с помощью сценариев Python. Сценарии можно использовать для двух целей:
- Для улучшения алгоритма подбора, когда существующих вариантов подбора недостаточно. Это относится к закладкам QuickJump, QuickSpeak, QuickClick, иерархическим и SkipClutter.
- Выполнение произвольного кода Python для автоматизации определенных действий на веб-страницах. Это можно сделать с помощью закладок Script или Numeric Script.
API Сценариев
В скрипте вам предоставляются следующие переменные:
p
- текущий абзац. Это экземпляр классаParagraph
, определенного в paragraph.pyt
- текущий объектtextInfo
.
Рекомендуется работать с параграфами, так как они предоставляют интерфейс более высокого уровня, чем textInfo
.
Ваш скрипт должен решить, соответствует ли текущий параграф вашему пользовательскому правилу или нет. Вы можете:
- Возвращать
True
, если соответствует, иначеFalse
. - Возвращать
None
или отсутствие оператораreturn
, чтобы указать на отсутствие совпадения. - Вернуть целое число
i
, чтобы указать, чтоi
-ый следующий илиi
-ый предыдущий параграф совпадает и должен быть произнесен вместо текущего параграфа. - Возвращает кортеж
(i: int, s:str)
, чтобы указать на совпадение со смещением (см. предыдущий пункт) и заставить BrowserNav произнести сообщениеs
. - Вызовите функцию
match()
, чтобы указать на совпадение. Эта функция внутренне вызывает исключение, так что выполнение вашего скрипта будет прервано после вызова функции match. Функция определяется как:def match(offset: int | TextInfo | Paragraph = None, message: str = None) -> None:
Вы также можете импортировать любые модули и писать скрипты общего назначения.
Вы можете использовать оператор print()
для отладки вашего скрипта: вывод будет напечатан в журнал NVDA.
Примеры сценариев
-
Этот скрипт проверяет, что текущий абзац является ссылкой и что текст предыдущего заголовка уровня 5 начинается с текста текущего абзаца:
try: if controlTypes.Role.LINK in p.roles and p.previousHeading5.textInfo.text.startswith(p.text): print(f «pp5 {p.previousHeading5.textInfo.text}») return True except NotFoundError: return None
-
Этот скрипт не выполняет проверку, но активирует последнее поле редактирования на странице: ''' p.end.previous.previousEdit.activate() '''
-
Этот скрипт находит имя пользователя, которое может находиться на один или два абзаца впереди; затем он находит начало комментария, анализируя размер шрифта; затем он находит конец комментария, ища текст «Ответить». Затем он проверяет весь текст комментария и добавляет имя пользователя, которое должно быть произнесено перед найденным текстом:
user = p.next if user.text == «downvote»: user = user.next try: username = user.text.split()[0] except IndexError: username = '?' pp = p begin = None for i in range(5): fs = pp.attributes.get(ParagraphAttribute.FONT_SIZE, []) #print(f «i={i} fs={fs}») if '9_pt' in fs: begin = pp break pp = pp.next else: return end = begin while end.text != 'reply': end = end.next match(textInfoRange(begin, end), username)
-
Этот скрипт является генератором, что означает, что все, что он выдает, будет использовано в качестве времени сна перед выполнением следующей строки. Этот скрипт будет выполняться в фоновом потоке неблокирующим образом. Этот скрипт выполняет ряд действий:
- Находит кнопку с заданным именем и нажимает ее.
- Вводит всплывающий диалог:
p.home.nextEmbeddedObject.activate()
. - Получает новый сфокусированный элемент в этом диалоге:
d = getFocusParagraph()
. - Находит и проверяет чекбокс в этом диалоге.
- Находит другую кнопку в этом диалоговом окне по имени и нажимает ее.
Эти действия повторяются 20 раз с помощью функции
retry
. Затем, после паузы в 500 мс, он находит кнопку «Run Query» и нажимает ее.def waitForDialogAndClickCheckbox(): try: p.home.find("Link Last Used").activate() p.home.nextEmbeddedObject.activate() except NotFoundError: pass d = getFocusParagraph() c = d.home.nextCheckBox if controlTypes.State.CHECKED not in c.obj.states: c.activate() d.home.find("Link QCPR Project").activate()
yield from retry(waitForDialogAndClickCheckbox, count=20) yield 500 yield from retry(lambda: p.home.find("Run Query").activate(), count=10)
-
Это числовой скрипт, поскольку в качестве входной переменной он принимает
level
. Он находитlevel
-ное поле редактирования из начала страницы (или из конца, если level отрицательный) и вызывает на немscript_editJupyter
.if level > 0: p = p.home for i in range(level): p = Paragraph(p.nextEdit.textInfo) elif level <= 0: level = 1-level p = p.end.previous tones.beep(500, 50) for i in range(level): p = Paragraph(p.previousEdit.textInfo) else: tones.beep(500, 50) p.textInfo.obj.currentFocusableNVDAObject = p.textInfo.focusableNVDAObjectAtStart p.textInfo.obj.script_editJupyter(None)
Конфигурация
Определения закладок хранятся в директории конфигурации NVDA в файле browserNavRules.json
. Вы можете отредактировать этот файл вручную или поделиться им с кем-нибудь.
Каталог конфигурации NVDA можно найти, открыв меню Пуск и набрав: Просмотреть папку пользовательских настроек NVDA.
BrowserNav поставляется с файлом конфигурации по умолчанию с примерами закладок.
Редактирование полудоступных полей редактирования
Многие современные веб-приложения, в частности Jupyter, используют поля редактирования, которые не так доступны, например, они кажутся пустыми, но вы можете копировать текст в них и из них с помощью клавиш Control+A, Control+C и Control+V.
BrowserNav предлагает экспериментальную функцию, позволяющую редактировать эти поля редактирования более удобным способом. Чтобы воспользоваться ею, выполните следующие действия:
- Найдите поле редактирования в окне браузера.
- Нажмите NVDA+E.
- Появится новое окно с содержимым этого поля редактирования.
- Отредактируйте содержимое этого окна в этом окне.
- После завершения работы нажмите Escape, чтобы закрыть доступное окно редактирования и обновить поле редактирования на веб-странице.
- В качестве альтернативы можно нажать Control+Enter, Shift+Enter или Alt+Enter. Это приведет к закрытию окна редактирования, обновлению поля редактирования и передаче жеста веб-приложению.
- Чтобы закрыть окно редактирования без сохранения изменений, нажмите Alt+F4.
- В любой момент, если содержимое ранее отредактированного текста потеряно, нажмите NVDA+Control+E, чтобы скопировать его в буфер обмена.
Примечания:
- Не изменяйте состояние браузера, например, не переключайте вкладки и не фокусируйтесь на других элементах внутри вкладки, пока открыто окно редактирования текста. Это помешает BrowserNav корректно обновлять текст в окне редактирования.
- Убедитесь, что после нажатия Control+Enter, Shift+Enter или Alt+Enter вы быстро отпустили модификаторы Control, Shift или Alt. Удержание их более секунды приведет к проблемам.
- Эта функция в настоящее время является экспериментальной. Пожалуйста, ожидайте только около 90-95% успеха.
- Она была тщательно протестирована в Google Chrome и Firefox. Она может работать и в других браузерах, но в этом случае возрастает вероятность возникновения проблем, таких как потеря информации.
Исходный код
Исходный код доступен по адресу http://github.com/mltony/nvda-indent-nav.
Перевод
История версий
Список версий
- BrowserNav-V.2.6.nvda-addon
- BrowserNav-V.2.5.nvda-addon
- BrowserNav-V.2.4.nvda-addon
- BrowserNav-V.2.3.nvda-addon
- BrowserNav-V.2.2.nvda-addon
- BrowserNav-V.2.1.nvda-addon
- BrowserNav-V.2.0.nvda-addon
- BrowserNav-V.1.9.nvda-addon
- BrowserNav-V.1.15.nvda-addon
- BrowserNav-V.1.13.nvda-addon
- BrowserNav-V.1.12.nvda-addon
- BrowserNav-V.1.11.nvda-addon
- BrowserNav-V.1.10.nvda-addon
- BrowserNav-V.1.1.nvda-addon