Screenreader accessibility of Cursor IDE for blind and visually impaired programmers using Mac OS with VoiceOver screenreader for python, R, and markdown files: Cursor code editor typing and editing code

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Dear Cursor Support Team,
I am writing to submit a bug report regarding the screen reader accessibility of Cursor, specifically when using VoiceOver to navigate and edit text within the code editor, which is relevant for blind and visually impaired programmers but also other people such as academics. I am a visually impaired screen reader user, and I primarily work with Python 3, Jupyter notebook (.py) files, R, LaTeX (.tex), Markdown (.md), and Quarto markdown (.qmd) files on my Mac Studio (macOS Sequoia, M1 Apple Silicon) and MacBook Pro (macOS Ventura, Intel chip). I have also tested these issues on macOS Sequoia, where they persist.
In general, Cursor’s code editor is, in my view, more accessible than other IDEs such as Visual Studio Code or PyCharm, which is very encouraging. However, several issues related to selecting, cutting, and deleting text make editing cumbersome for blind and visually impaired (BVI) programmers. Fixing these issues could make Cursor the most accessible IDE available to our community.
Below, I have outlined the main accessibility problems. Please let me know whether a screen recording or live demonstration would be useful to help reproduce these issues.

Problems related to Selecting Text in Long Comments or Code Blocks (Python, LaTeX, Markdown)
• Single line selection works: Selecting a single line with Shift + Arrow Down works as expected.
• Sentence selection fails: In VoiceOver, I can navigate by sentence and then use Control + Option + Shift + A to select the currently spoken sentence. This works in editors like TextEdit, TextMate, and Microsoft Word, but it does not work in Cursor, preventing efficient sentence-level editing, e.g., when writing markdown files, Latex, long comments, or long texts to be printed in dialog boxes.
• Paragraph selection does not delete/cut correctly: Using Shift + Option + Arrow Down selects a full paragraph, but pressing Delete removes only one character instead of the selected text. Likewise, using Command + X after selecting a paragraph does not cut it.
• Selection mode unavailable: In other editors, pressing Control + Option + Return activates selection mode, which allows text to be selected efficiently. This feature is missing in Cursor but it’s also not essential.
• Fast Searching conflict: VoiceOver’s Fast Searching feature (e.g., Right Command + “:” to jump to the next colon) does not work in Cursor. This may be due to a shortcut conflict.
• Trackpad commander navigation inconsistent: When swiping up or down with trackpad gestures, the VoiceOver cursor and keyboard/system focus sometimes diverge, causing VoiceOver to announce the wrong line beginning or character.

Additional Accessibility Issues in Cursor (VoiceOver, macOS Ventura & Sequoia)
• Loss of keyboard focus when using autocomplete: In R scripts and Markdown (.md) files, the keyboard focus sometimes detaches from the code editor area when autocomplete suggestions appear. For example, after typing part of a word (e.g., formula or num_of_inventors), VoiceOver makes a sound and stops entering text. I need to press Command + 1 repeatedly to re-focus the editor and continue typing.
• QuickNav and navigation consistency: QuickNav navigation in Cursor does not always behave reliably. Fixing the text selection problems described earlier would also make QuickNav much more useful for blind programmers. QuickNav works similarly to the trackpad commander in VoiceOver mentioned above, but both are separate VoiceOver features.
• “Send Prompt” button not announced by VoiceOver: When using Cursor’s AI features, the “Send Prompt” button is not spoken by VoiceOver, making it harder to know whether the action is available.
• VoiceOver focus lost in AI features: When interacting with Cursor’s AI functionality, VoiceOver focus sometimes gets lost, requiring manual navigation to return to the editor (e.g., Command + 1; or I need to Command + Tab out of Cursor and back to it; or even restart Cursor).
• Multiple tabs/files cause focus issues: When working with more than one open file (e.g., a Markdown file and an R file), VoiceOver sometimes loses focus when typing. For instance, when entering a word like “formula,” only part of it gets entered before focus shifts unexpectedly.
• Copy command not announced: When copying text (Command + C), VoiceOver does not announce confirmation, leaving users unsure whether the action succeeded.
• Accessibility support setting unclear: When Cursor detects a screen reader, it prompts with “Enable accessibility support?” but the “Learn More” button links to VSCode’s accessibility documentation instead of Cursor’s, which can cause confusion for new users.

Test Cases
• Test 1: Single line deletion → Works correctly: select a line with Shift + Arrow Down and press Delete.
• Test 2: Paragraph deletion → Does not work: select a paragraph with Shift + Option + Arrow Down and try Delete or Command + X. VoiceOver also fails to select and delete sentences using Control + Option + Shift + A.

Why This Matters
Blind and visually impaired programmers often use long comments, docstrings, LaTeX blocks, and Markdown content. The ability to select, cut, and delete by sentence or paragraph is essential for efficient editing. Adding VoiceOver selection support (Control + Option + Shift + A, Control + Option + Return, etc.) would make Cursor behave much like Apple’s TextEdit, but with the added functionality of a full IDE.
Cursor is already far more accessible than many competitors. Addressing these issues would make it an outstanding choice for blind and visually impaired developers.
Thank you very much for your support and for considering these accessibility improvements. Please let me know if further information, test cases, or a screen recording would be helpful.
Best regards,

jml90

Steps to Reproduce

To reproduce these bugs, we first need to use a Mac computer and turn on the VoiceOver built in screen reader. To do so, press command plus F5. We also need to open VoiceOver utility > Commanders and enable (1) QuickNav and (2) Trackpad commander. With the screen reader turned on and cursor open, we can use the keyboard shortcut command plus one to move the system focus to the code editor of, for example, a python script that we have open in our working directory. By moving the system focus to the code editor I mean that, for example, we basically click into the code editor area so that we can use the arrow keys to navigate line by line, character by character, or word by word using the arrow keys and various modifier keys. We can use option plus left arrow and option plus right arrow to navigate left and right. On Mac with VoiceOver, we can also use the standard modifier keys control plus option and then use the arrow keys to navigate left and right. For example, if our system focus is at the beginning of a line starting with the print function, pressing control plus option plus right arrow will move the system focus to what is written in the print function, such as “hello world”.

Reproducing box related to selection:
For example, when we make a comment in python that consists of multiple sentences, and then move to the second sentence, we can press control plus option plus S to let the screen reader speak the sentence out aloud. Then we can press control plus option plus shift plus a to select that sentence. Then we can copy the sentence using command plus C. In my case, copying does not work here.

For the other bugs they are somewhat difficult to locate but let me know and I will provide more detailed explanations.

Regarding the AI features, I usually select some code in the Cursor code editor area. For example, I might select two lines of code using shift and arrow down. Then I press command plus K to bring up a small window where I can make a prompt to an AI. Here it already becomes difficult because Cursor does not tell me that my system focus has now shifted from the code editor into the text box where I can make the AI prompt. It would be very helpful to have the announcement that I am now in this edit text area. After writing a prompt, I need to go right Several times using control plus option plus right arrow. Then I can find the button to send the prompt. However, also the button to send the prompt is not announced. Normally, VoiceOver would say something like “Send Prompt button”. Perhaps this button just does not have a label. Maybe you should just label it send prompt button.
Moreover, sometimes the system focus just jumps around seemingly in a random manner after pressing command plus K so that this feature becomes unusable. I am not sure when exactly this happens though.

I would be really grateful for your help!

Expected Behavior

  • Copy a sentence
  • Copy a selected paragraph
  • Selecting text in code editor
  • Labels of “Send Prompt” button and “Edit text” fields should be announced by VoiceOver screenreader
  • System-focus and VoiceOver modifier key focus should be synchronized to each other and not jump out of the code editor unless I deliberately choose to, e.g., go to the terminal, file explorer, or other parts of the IDE

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.4.5
VSCode Version: 1.99.3
Commit: af58d92614edb1f72bdd756615d131bf8dfa5290
Date: 2025-08-13T02:08:56.371Z
Electron: 34.5.8
Chromium: 132.0.6834.210
Node.js: 20.19.1
V8: 13.2.152.41-electron.0
OS: Darwin x64 22.6.0

Additional Information

The key issue is that the keyboard / system-focus and the focus of the screenreader (VoiceOver) need to remain synchronized, which works most of the time in Cursor but not always. This may be the root of the problem.

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

1 Like