twinejs icon indicating copy to clipboard operation
twinejs copied to clipboard

Passage text can't be edited with the NVDA screen reader

Open Neurrone opened this issue 2 years ago • 4 comments

Describe the bug.

I'm using the NVDA screen reader with the desktop application.

When editing passage text, it reads the text in the passage. However, pressing the arrow keys within the edit field to move around does not produce any speech output, making it difficult to work with passage text.

A workaround for this issue is selecting all text, pasting it into a notepad window, editing it then pasting it back into the passage edit field. This works but is definitely not ideal.

Steps to reproduce:

  1. Run the NVDA screen reader
  2. Select a passage and choose edit
  3. Press the arrow keys in the edit field

Expected behavior:

NVDA announces the character under the cursor. Instead, it only reads blank

Additional context on this problem.

I haven't looked at the code in this repository yet, but this issue happens if CodeMirror 5 and below is used for the edit field. Is this the component used for the edit field by any chance?

Twine version number

2.8.1

Does this problem occur with the web version of Twine or the desktop app?

Desktop app

What operating system does this problem occur on?

Windows

If this problem is occurring with the web version of Twine, what browser does it occur on?

None

Presubmission checklist

  • [ ] I am interested in working on code that would fix this bug. (This is not required to submit a bug report.)
  • [X] I have done a search and believe that an issue does not already exist for this bug in the GitHub repository.
  • [X] If this problem is occurring with the app version of Twine, it still happens after I remove the user.css file from my Twine folder. (You would've added this file yourself. If you don't understand this question, you can safely check this box.)
  • [X] I have read and agree to abide by this project's Code of Conduct.

Neurrone avatar Apr 03 '24 16:04 Neurrone

Ah, I see that CodeMirror < 6 is indeed being used in package.json.

Updating to CodeMirror 6 should fix the issue.

Neurrone avatar Apr 03 '24 16:04 Neurrone

Appreciate the feedback! This is a great reason to upgrade to CM 6. It’s something that’s been suggested in the past; the main obstacle is the level of effort involved in upgrading, as it sounds like a CM 6 is a pretty big change from 5.

klembot avatar Apr 04 '24 02:04 klembot

How extensive is the usage of Codemirror? From the migration guide, it seems like it shouldn't be too difficult unless there are plugins or other advanced functionality being used.

Neurrone avatar Apr 04 '24 02:04 Neurrone

@Neurrone we use CodeMirror for passage editors as well as the CSS and JS editor dialog. What adds more complexity is that story formats can now extend Twine using CM modes and commands, so we'd need to update the API for that based on how things work in 6. Docs on this

klembot avatar Apr 05 '24 17:04 klembot

Hi.! Super thrilled to be able to comment that this is now fixed. You need to disable the enhanced editor, which you can do by:

  • creating a new story
  • go to the twine tab
  • go to preferences
  • toggle use enhanced editors

As far as I can tell this does need to be done with every story, but interacting with the text of the passage editor is now doable!

tangela19 avatar Dec 18 '24 16:12 tangela19

@tangela19 thanks for bumping this!

The preference applies to all stories, not just the current one.

klembot avatar Dec 24 '24 17:12 klembot