Environment/version
- Extension version: 14.1.1
- VSCode version: 1.133.0 (user setup)
- OS version: Microsoft Windows 11 Professional Version 25H2 (OS Build 26200.9168)
Steps to reproduce
- Turn on a screen reader, such as VoiceOver on macOS or Narrator on Windows
- Open an editor in VSCode with the Bookmarks extension installed.
- Execute the command bookmark.toggle
- Arrow down to the next line
- Arrow back up to the line with the bookmark.
- Execute the command bookmark.toggle
Expected Behavior
- When the bookmark is added, a non-visual notification informs the user.
- When the cursor moves to the line containing the bookmark, a non-visual indicator informs the user of the presence of the bookmark.
- When the bookmark is removed, a non-visual notification informs the user.
Actual Behavior
A blind user is not aware of any of the events.
Problem Description
As a blind user who is using a screen reader, such as JAWS, NVDA, VoiceOver, or Narrator, and who must rely on the keyboard instead of the mouse, the bookmarks extension could be particularly valuable because of the many different ways it enables navigation and selection. However there are some important tasks that are preventing me from tapping its real productivity enhancing potential.
it is difficult to:
- Know what has happened when I execute the bookmark toggle command.
- Know if the current line contains a bookmark.
If I understand the documentation correctly, visual users are able to perceive these states and state changes without taking extra actions, such as opening and inspecting the bookmark list. For now, using the list is my primary means of working around these gaps. It is a pretty cumbersome workaround.
Solution Proposal
Could you please leverage the VSCode accessibility infrastructure to:
- Add bookmarkToggleAccessibilityNotification: If accessibilityModeEnabled, generate an accessibility notification when the toggle bookmark command is executed.
- Add settings/accessibility.signals.lineHasBookmark: If accessibilityModeEnabled, generate an accessibility alert when the cursor moves to a line containing a bookmark.
bookmarkToggleAccessibilityNotification Details
A good model for this is the behavior of the command editor.action.setSelectionAnchor. When accessibility mode is enable, that command generates and accessibility notification that tells me that a selection anchor was set and where. Another example is the command editor.action.announceCursorPosition, which generates an accessibility notification about the current position of the cursor in the editor.
I recommend that when the result of command bookmarks.toggle is:
- bookmark is added: send notification "Mark set at line Y column X"
- Bookmark is removed: send notification "Removed mark from line Y column X"
Note: I recommend this specific phrasing so the two strings:
- Sound as distinct as possible, i.e., the word "mark" is in different positions.
- Are as short as possible while still providing all critical information, i.e., "bookmark" is shortened to "mark".
Caveat: I don't know if the above characteristics would be well preserved when translated.
settings/accessibility.signals.lineHasBookmark Details
A good model for this is accessibility.signals.diffLineInserted. When navigating a diff and the cursor moves to a line that was inserted, this causes a specific sound to be played.
The tricky part of this signal is including an appropriate sound. The sound needs to be short, distinct from other accessibility signals, and noticeable without being overly intrusive.
One way to help users understand the meaning of the signal sound would be to play the sound when a bookmark is added; this would be in addition to sending the notification string. This would generate an immediately understandable association between the signal sound and the presence of a bookmark.
Environment/version
Steps to reproduce
Expected Behavior
Actual Behavior
A blind user is not aware of any of the events.
Problem Description
As a blind user who is using a screen reader, such as JAWS, NVDA, VoiceOver, or Narrator, and who must rely on the keyboard instead of the mouse, the bookmarks extension could be particularly valuable because of the many different ways it enables navigation and selection. However there are some important tasks that are preventing me from tapping its real productivity enhancing potential.
it is difficult to:
If I understand the documentation correctly, visual users are able to perceive these states and state changes without taking extra actions, such as opening and inspecting the bookmark list. For now, using the list is my primary means of working around these gaps. It is a pretty cumbersome workaround.
Solution Proposal
Could you please leverage the VSCode accessibility infrastructure to:
bookmarkToggleAccessibilityNotification Details
A good model for this is the behavior of the command editor.action.setSelectionAnchor. When accessibility mode is enable, that command generates and accessibility notification that tells me that a selection anchor was set and where. Another example is the command editor.action.announceCursorPosition, which generates an accessibility notification about the current position of the cursor in the editor.
I recommend that when the result of command bookmarks.toggle is:
Note: I recommend this specific phrasing so the two strings:
Caveat: I don't know if the above characteristics would be well preserved when translated.
settings/accessibility.signals.lineHasBookmark Details
A good model for this is accessibility.signals.diffLineInserted. When navigating a diff and the cursor moves to a line that was inserted, this causes a specific sound to be played.
The tricky part of this signal is including an appropriate sound. The sound needs to be short, distinct from other accessibility signals, and noticeable without being overly intrusive.
One way to help users understand the meaning of the signal sound would be to play the sound when a bookmark is added; this would be in addition to sending the notification string. This would generate an immediately understandable association between the signal sound and the presence of a bookmark.