edrlab / thorium-reader

A cross platform desktop reading app, based on the Readium Desktop toolkit
https://www.edrlab.org/software/thorium-reader/
BSD 3-Clause "New" or "Revised" License
1.73k stars 151 forks source link

Bookmark set indication for screen reader #1438

Closed GeorgeKerscher closed 2 years ago

GeorgeKerscher commented 3 years ago

Using v1.6.1-alpha.1.737722822 with NVDA 20.4, I press ctrl + b and nothing appears to hapen. If I go to the navigation and arrow down to bookmarks, I see that there is a new bookmark marked as 0. It would be good to have some kind of indication that it was inserted. In one of the earlier releases, I recall an add button getting focus. What I have been doing is highlighting a portion of text, copy it to the clipboard, and then edit the bookmark and paste the clipboard in. This allows me to Go back to a bookmark and after copying the text back to the clipboard, activate the bookmark, and then search for the text using NVDA's search function. This takes me to the exact location.

nvdaes commented 3 years ago

I think that bookmark feature should be improved for screen reader users, since sometimes the exact bookmark is placed before the cursor was placed, and sometimes the bookmark is placed before. If the improvement is not possible, imo an appropriate procedure for screen reader users should be documented in the wiki. Also, I think that some people don't know that we have to activate the link available in the frame to move the cursor to the last position, links or bookmarks. Recently I read how adobe Digital Editions instead of Thorium was recomended for visual impaired people, and they highlighted that ADE goes to the latest position. I think this is a very important issue.

GeorgeKerscher commented 3 years ago

It is horrible that ADE is recommended over Thorium. I too do not know when to activate the link marked ___ or not. This needs to be well documented. I am happy to review and work on this, but I do not think I should start the documentation, because I don't know the exact usage.

nvdaes commented 3 years ago

When I open a book, activate a link of the book or a search result, or advance or go back navigating to next or previous chapter, press control home, then the button to go to main contents, taba and then the frame. Also when I go to navigation to activate a bookmark, but this should be documented. I recorded a demo in Spanish and recommended to activate this frame. For me the main lack of thorium is a better documentation. I"m commenting from IPhone with braille keyboard on touch screen from GitHub App. Sorry for possible mistakes. :)

GeorgeKerscher commented 3 years ago

I still do not understand the way to get to a linked location. Perhaps if this spot where there is a link to the exact location is and it is used for many reasons, this should get a hot key, so you don't need to do ctrl + home, then go to body, and then tab and press enter.

nvdaes commented 3 years ago

If I remember correctly, @danielweck mentioned that the frame-link that can be reached pressing tab after going to main context is an invisible control for screen readers, so we can move to the exact location of links, bookmarks or, if we close a book and reopen it, to the last position. Maybe he clarifies this to us and in documentation. I agree about making this accessible with a shorcut key, thought I don"t know if this can be done for a wide range of screen readers.

Enviado desde mi iPhone

El 25 abr 2021, a las 22:19, George @.***> escribió:

 I still do not understand the way to get to a linked location. Perhaps if this spot where there is a link to the exact location is and it is used for many reasons, this should get a hot key, so you don't need to do ctrl + home, then go to body, and then tab and press enter.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

danielweck commented 3 years ago

Hello George and Noelia, thank you for taking the time to describe the experienced and expected behaviours.

We added the underscore hidden link immediately at the beginning of publication documents for screen readers who do not automatically reach into the iframe at the exact destination HTML fragment ID, when clicking on a user interface navigation link (e.g. table of contents, bookmarks, page numbers) or when clicking on any other hyperlink inside publication documents.

This special underscore hidden link does not have a dedicated shortcut as it was originally implemented as an alternative mechanism to the normally expected screen reader cursor positioning. But if your feedback is that the underscore link should be a first-class UI navigation technique in Thorium, then I am sure we can devise a keyboard focus trick to quick-access this location. The main frame shortcut reaches immediately before the underscore link, just a keyboard tab away if I remember correctly.

nvdaes commented 3 years ago

Hi Daniel, according to my experience, the underscore link should be easier to locate or should have a dedicated shortcut, since NVDA, in the first place, shows a toolbar that, from my point of view, is not useful at all. The screen reader says just toolbar but this maybe perfectly ommited, and its shortcut control+t is not very useful, since the same result can be achieved pressing control+home. Then I press tab or down arrow to move to the button to go to main contents, press enter or space, then tab to focus the underscore frame, and the I activate this link. This maybe tricky. Most efficient screen readers on Windows should activate what in NVDA is named browse mode, a special mode to optimize the reading user experience in HtML or other complex documents. This mode allows to press single character to move to links, headings adn so on, as you know. Adn in this mode, the latest position is not always saved and the screen reader can place the browse mode cursor at the start of the document. Also, Thorium bookmarks are not exact, that is, the cursor is placed near, but not at the exact position, not always before the last position. So we need to edit the bookmark to register the latest word where we stop reading, to locate them, for example, with the search feature of the screen reader, or we may prefer to use an add-on named placeMarkers to move to the exact position. Hope this helps and can be improved.

danielweck commented 3 years ago

Thanks Noelia, I will study your description.

Just a quick word about bookmarks: they are actually adequately precise when not using a screen reader, with a default to the HTML element currently displayed in the upper left corner of the visible viewport (i.e. basic vague assumption about where the user is looking / reading), or if the user clicks on text with pointing device, mouse cursor or touch event, then bookmarks capture the clicked HTML element. If a text selection is made in the webview / iframe, then the selected text automatically populates the bookmark label which is user-editable and has a default title otherwise. The current limitation is that bookmarks do not capture character-level positions, so for example a very long paragraph is indivisible and consequently the granularity of the generated bookmark is rather broad.

Now, I appreciate that the experience with screen readers is quite different, due to text selection not working via the usual web browser engine native technique (if I understand correctly, the screen reader uses its own cursor and text buffer). I think that the mouse click activation on a specific HTML element target is also problematic. Additionally, the experience of restoring a bookmark location (or the last reading location, or clicking on a TOC hyperlink, or jumping to a page break) is suboptimal (as mentioned before in this discussion) due to some screen readers not automatically following the designated target into the embedded iframe, which forces users to rely on a separate interaction trick in order to navigate into the actual location (i.e. to reach and click the special hidden underscore link at the beginning of every displayed publication document)

nvdaes commented 3 years ago

Thank you Daniel, for your work and precise explanations. Now I understand better how bookmarks work. In fact, in browse mode, the selection may work in a different way. This maybe problematic also in case a notes feature is implemented, I suppose. In case this cannot be fixed, you may mention this in the documentation or in the wiki, to make suggestions to screen reader users to work in a better way. I think that the underscore frame-link should be placed before menus, where the toolbar is located. Though it"s at the start of publication, previously we find the toolbar and other menus. Also, I observe that shorcuts like control w to close the window don"t work, not sure why. And if the navigation or search dialog is open or active, shortcuts don"t work and screen reader don"t notify an error or something. I press escape and try again. And sometimes I have to press alt f4. Hope this helps.

Enviado desde mi iPhone

El 25 abr 2021, a las 23:16, Daniel Weck @.***> escribió:

 Thanks Noelia, I will study your description.

Just a quick word about bookmarks: they are actually adequately precise when not using a screen reader, with a default to the HTML element currently displayed in the upper left corner of the visible viewport (i.e. basic vague assumption about where the user is looking / reading), or if the user clicks on text with pointing device, mouse cursor or touch event, then bookmarks capture the clicked HTML element. If a text selection is made in the webview / iframe, then the selected text automatically populates the bookmark label which is user-editable and has a default title otherwise. The current limitation is that bookmarks do not capture character-level positions, so for example a very long paragraph is indivisible and consequently the granularity of the generated bookmark is rather broad.

Now, I appreciate that the experience with screen readers is quite different, due to text selection not working via the usual web browser engine native technique (if I understand correctly, the screen reader uses its own cursor and text buffer). I think that the mouse click activation on a specific HTML element target is also problematic. Additionally, the experience of restoring a bookmark location (or the last reading location, or clicking on a TOC hyperlink, or jumping to a page break) is suboptimal (as mentioned before in this discussion) due to some screen readers not automatically following the designated target into the embedded iframe, which forces users to use a separate trick in order to reach into the actual location (i.e. the special hidden underscore link at the beginning of every displayed publication document)

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

GeorgeKerscher commented 3 years ago

Oh, the open dialogue is why the shortcut keys don't work. I reported that as an issue. Now I know to hit escape if a shortcut does not work and try it again.

nvdaes commented 3 years ago

After seeing that this discussion has been mentioned in the Reading systems agenda on the transition to accessible epub mailing list:

  1. About documentation, I feel that it"s required specifically for the underscore link and the meaning of save session settings. I suppose trat it refers to a store, but I am not sure.

In the RS agenda they mention JAWS scripts for another app. For me Thorium has the best bookmarks system that I have seen in an epub reading app working with NVDA, since at least the cursor is placed near the last position, in the HTML element. This is the first app that I know supporting this and able to locate internal links in such an easy way, though, as mentioned, a shorcut for the underscore link would be appreciated. also the search feature works in the best way that I"ve seen in an epub app with NVDA. Anyway, @danielweck, in case this cannot be improved, you may want to check the placeMarkers add-on for NVDA. I created it years ago in collaboration with other community members, and years ago, considering the state of epub reading systems used by me and the requirements about bookmarks and notes, not accessible at that moment with NVDA, I added the ability of creating notes a multiline edit box associated, if desired, with eeach bookmark). I would like to see this feature, even improved, in Thorium without using an external add-on. But since JAWS scripts are mentioned in the agenda, you maybe interested in get a look of the pla"ceMarkers add-on for NVDA, available on the official add-ons community website: https://addons.nvda-project.org

And on my GitHub account, where I maintain it:

https://github.com/nvdaes/placeMarkers

This add-on allows to set place markers based on the number of characters.

cary-rowen commented 3 years ago

Yes, the location of the jump table of contents and footnote links is incorrect, so I have to stay on version 1.5. For me, version 1.5 is ideal.

GeorgeKerscher commented 3 years ago

I am using v1.6.1-alpha.1.797644450 Happily in scrolling mode, I am taken to the correct location from the TOC and using links, as in the fundamental EPUBtest.org title. I can also use the ___ link to get to the same place.

Still I am confused with the results. I have the test results and can go to them, but the process is confusing. I don't see where F3 gets me to the next search results.

I agree we need to write up the documentation on how this is working, but when these models are open or closed, it makes the navigation difficult. Hitting escape does not close all models, so they are open and prevent the use of shortcut keys.

Perhaps we should get on a zoom call with screen and audio sharing tohave Daniel explain what is going on.

danielweck commented 2 years ago

Fixed via https://github.com/edrlab/thorium-reader/commit/3ad0232182bdff6377209b23ac1965e29bf03d04

Comment: Ah, bad news, VoiceOver's text selection feature with the VO keys + Enter only works in Safari. It completely fails in Firefox, and appears to initially work in Chrome but fails at actually creating the text selection in the webview. Thorium is an Electron application therefore built with the Chromium web browser engine, where I observe the same behaviour.

So, I managed to improve the bookmark add/delete logic when invoked via the user interface icon button in the toolbar (to toggle bookmark at the entire page level), as well as when using the CTRL-B keyboard shortcut to add fine-grain bookmarks at the precise current reading location (optionally with selected text in order to set the bookmark title).

Perhaps you will have more success with Narrator, JAWS and NVDA to select character ranges in the HTML document in order to create bookmarks with the name inferred from the selected text. Please let me know. You will hear the screen reader speak an ARIA live alert notification that provides the action (add or delete) and the total number of bookmarks recorded.

Originally posted here https://github.com/edrlab/thorium-reader/issues/1594#issuecomment-1001242068

nvdaes commented 2 years ago

Hello Daniel, I cannot select text with NVDA, but I heart that a bookmark has been added and then I can edit it with an appropriate name. Thanks, this is great!

2021-12-26 22:14 GMT+01:00, Daniel Weck @.***>:

Fixed via https://github.com/edrlab/thorium-reader/commit/3ad0232182bdff6377209b23ac1965e29bf03d04

Comment: Ah, bad news, VoiceOver's text selection feature with the VO keys + Enter only works in Safari. It completely fails in Firefox, and appears to initially work in Chrome but fails at actually creating the text selection in the webview. Thorium is an Electron application therefore built with the Chromium web browser engine, where I observe the same behaviour.

So, I managed to improve the bookmark add/delete logic when invoked via the user interface icon button in the toolbar (to toggle bookmark at the entire page level), as well as when using the CTRL-B keyboard shortcut to add fine-grain bookmarks at the precise current reading location (optionally with selected text in order to set the bookmark title).

Perhaps you will have more success with Narrator, JAWS and NVDA to select character ranges in the HTML document in order to create bookmarks with the name inferred from the selected text. Please let me know. You will hear the screen reader speak an ARIA live alert notification that provides the action (add or delete) and the total number of bookmarks recorded.

Originally posted here https://github.com/edrlab/thorium-reader/issues/1594#issuecomment-1001242068

-- Reply to this email directly or view it on GitHub: https://github.com/edrlab/thorium-reader/issues/1438#issuecomment-1001242742 You are receiving this because you commented.

Message ID: @.***>

GeorgeKerscher commented 2 years ago

Hello,

This is indeed great! I highlight a passage and copy it to the clipboard. I then press NVDA + enter and then press Ctrl+b to set the bookmark. I then navigate to the list of bookmarks and edit the name by copying from the clipboard. Pressing the button takes me to the exact location.

I also like the ctrl+shift+N for the already opened table navigation

Best

George

From: Noelia Ruiz Martínez @.> Sent: Sunday, December 26, 2021 2:50 PM To: edrlab/thorium-reader @.> Cc: George @.>; Author @.> Subject: Re: [edrlab/thorium-reader] Bookmark set indication for screen reader (#1438)

Hello Daniel, I cannot select text with NVDA, but I heart that a bookmark has been added and then I can edit it with an appropriate name. Thanks, this is great!

2021-12-26 22:14 GMT+01:00, Daniel Weck @. <mailto:@.> >:

Fixed via https://github.com/edrlab/thorium-reader/commit/3ad0232182bdff6377209b23ac1965e29bf03d04

Comment: Ah, bad news, VoiceOver's text selection feature with the VO keys + Enter only works in Safari. It completely fails in Firefox, and appears to initially work in Chrome but fails at actually creating the text selection in the webview. Thorium is an Electron application therefore built with the Chromium web browser engine, where I observe the same behaviour.

So, I managed to improve the bookmark add/delete logic when invoked via the user interface icon button in the toolbar (to toggle bookmark at the entire page level), as well as when using the CTRL-B keyboard shortcut to add fine-grain bookmarks at the precise current reading location (optionally with selected text in order to set the bookmark title).

Perhaps you will have more success with Narrator, JAWS and NVDA to select character ranges in the HTML document in order to create bookmarks with the name inferred from the selected text. Please let me know. You will hear the screen reader speak an ARIA live alert notification that provides the action (add or delete) and the total number of bookmarks recorded.

Originally posted here https://github.com/edrlab/thorium-reader/issues/1594#issuecomment-1001242068

-- Reply to this email directly or view it on GitHub: https://github.com/edrlab/thorium-reader/issues/1438#issuecomment-1001242742 You are receiving this because you commented.

Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/edrlab/thorium-reader/issues/1438#issuecomment-1001245902 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ABW4OSAR3T5J4VRTBSA6K2TUS6E2DANCNFSM426JDVGQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub . You are receiving this because you authored the thread. https://github.com/notifications/beacon/ABW4OSG6D3KE5TSPHLMZKK3US6E2DA5CNFSM426JDVG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHOW4ZTQ.gif Message ID: @. @.> >

nvdaes commented 2 years ago

Í agree with George, this is great. I have updated my results for Thorium in epubtest.org. The wiki page has an issue. In the meantime I"ll update the nvdaes.github.io webpage about Thorium and will mention also the spanish tests. Best

Enviado desde mi iPhone

El 28 dic 2021, a las 20:39, George @.***> escribió:

 Hello,

This is indeed great! I highlight a passage and copy it to the clipboard. I then press NVDA + enter and then press Ctrl+b to set the bookmark. I then navigate to the list of bookmarks and edit the name by copying from the clipboard. Pressing the button takes me to the exact location.

I also like the ctrl+shift+N for the already opened table navigation

Best

George

From: Noelia Ruiz Martínez @.> Sent: Sunday, December 26, 2021 2:50 PM To: edrlab/thorium-reader @.> Cc: George @.>; Author @.> Subject: Re: [edrlab/thorium-reader] Bookmark set indication for screen reader (#1438)

Hello Daniel, I cannot select text with NVDA, but I heart that a bookmark has been added and then I can edit it with an appropriate name. Thanks, this is great!

2021-12-26 22:14 GMT+01:00, Daniel Weck @. <mailto:@.> >:

Fixed via https://github.com/edrlab/thorium-reader/commit/3ad0232182bdff6377209b23ac1965e29bf03d04

Comment: Ah, bad news, VoiceOver's text selection feature with the VO keys + Enter only works in Safari. It completely fails in Firefox, and appears to initially work in Chrome but fails at actually creating the text selection in the webview. Thorium is an Electron application therefore built with the Chromium web browser engine, where I observe the same behaviour.

So, I managed to improve the bookmark add/delete logic when invoked via the user interface icon button in the toolbar (to toggle bookmark at the entire page level), as well as when using the CTRL-B keyboard shortcut to add fine-grain bookmarks at the precise current reading location (optionally with selected text in order to set the bookmark title).

Perhaps you will have more success with Narrator, JAWS and NVDA to select character ranges in the HTML document in order to create bookmarks with the name inferred from the selected text. Please let me know. You will hear the screen reader speak an ARIA live alert notification that provides the action (add or delete) and the total number of bookmarks recorded.

Originally posted here https://github.com/edrlab/thorium-reader/issues/1594#issuecomment-1001242068

-- Reply to this email directly or view it on GitHub: https://github.com/edrlab/thorium-reader/issues/1438#issuecomment-1001242742 You are receiving this because you commented.

Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/edrlab/thorium-reader/issues/1438#issuecomment-1001245902 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ABW4OSAR3T5J4VRTBSA6K2TUS6E2DANCNFSM426JDVGQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub . You are receiving this because you authored the thread. https://github.com/notifications/beacon/ABW4OSG6D3KE5TSPHLMZKK3US6E2DA5CNFSM426JDVG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHOW4ZTQ.gif Message ID: @. @.> >

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.