Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chrome/Edge: NVDA unable to report the destination of various link types #14779

Open
amirsol81 opened this issue Apr 3, 2023 · 17 comments · Fixed by #14783
Open

Chrome/Edge: NVDA unable to report the destination of various link types #14779

amirsol81 opened this issue Apr 3, 2023 · 17 comments · Fixed by #14783
Labels
app/chrome app/edge/anaheim MS browser, chromium based, replaces Spartan in 2019 by Anaheim. NVDA access via IA2. good first issue github features these at https://github.com/nvaccess/nvda/contribute p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.

Comments

@amirsol81
Copy link

amirsol81 commented Apr 3, 2023

Note: the "graphic link" issue has been resolved. But as mentioned in later comments, "heading links" and at least one unknown link type exhibit the issue described with NVDA+K. Please check the comments for the two remaining issues.

Steps to reproduce:

  1. Open the following page: https://www.npr.org/
  2. There are many graphic links on the page. G and SHIFT+G are also capable of catching them as they are also graphics despite appearing as hyperlinks. Move to whatever graphic link you want.
  3. Press NVDA+K on either of them. You may also want to press it twice.

Actual behavior:

NVDA incorrectly says, "Blank." If pressed twice, NVDA doesn't capture the link destination either.

Expected behavior:

NVDA should report the destination of the graphic link. Moreover, when pressed twice, the destination should be displayed in the text box.
NPR.org is just an example - this issue is duplicable on other websites such as https://www.gsmarena.com/
NVDA, with Chrome/Edge, is incapable of detecting/displaying the destination of graphic links, that is, links which are described by NVDA as "graphic links."

NVDA logs, crash dumps and other attachments:

System configuration

NVDA installed/portable/running from source:

Both installed and portable

NVDA version:

2023.1, portable without add-ons, and Alpha 27996, installed, with/without add-ons

Windows version:

Windows 11, 22H2 (OS Build 22623.1485)

Name and version of other software in use when reproducing the issue:

Google Chrome/Microsoft Edge V111/112

Other information about your system:

I haven't tested this with Firefox as I don't have it.

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

Yes - as mentioned above

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Not tried

@lukaszgo1
Copy link
Contributor

Confirmed in both Chrome and Edge. This does not occur in Firefox, and, as stated in the issue description, is not caused by #14723. The reason why this fails is that for these links the value is empty, and we rely on the fact that value contains URL. Since this is not a regression from #14723 and affects only Chromiu based browsers which I'm not using I'm unlikely to work on this. CC @XLTechie as a potential taker.

@amirsol81
Copy link
Author

@lukaszgo1 @XLTechie Given the frequency of such links on various websites and considering the widespread use of Chrome/Edge, I'd appreciate it if the issue can be fixed.

@seanbudd seanbudd added blocked/needs-external-fix app/chrome app/edge/anaheim MS browser, chromium based, replaces Spartan in 2019 by Anaheim. NVDA access via IA2. p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. good first issue github features these at https://github.com/nvaccess/nvda/contribute and removed blocked/needs-external-fix labels Apr 4, 2023
@XLTechie
Copy link
Contributor

XLTechie commented Apr 4, 2023 via email

@beqabeqa473
Copy link
Contributor

Hi.

Just submitted a pr which fixes this problem.

The problem is that NVDA lands it's focus to a graphical element, which truely does not have a value containing url, but its parent element which is link, has such value.
So we are now checking such condition too.

seanbudd pushed a commit that referenced this issue Apr 5, 2023
Closes #14779

Summary of the issue:
destination of graphic links are not reported in chrome/edge

Description of user facing changes
Destination of graphic links now should be reported in chrome/edge browsers

Description of development approach
NVDA lands its focus to graphic elemeng "img" which does not have href value, but an element which is parent of that element is link.
So one more check was introduced to ensure han if we are focusing a graphic element and its parent is a link, we are now replacing an object by its parent object
@nvaccessAuto nvaccessAuto added this to the 2023.2 milestone Apr 5, 2023
@seanbudd seanbudd reopened this Apr 6, 2023
@amirsol81
Copy link
Author

amirsol81 commented Apr 7, 2023

@beqabeqa473 @seanbudd @XLTechie @lukaszgo1 Given NVDA's inability to report links imbedded inside headings after graphic links, should I open another issue, or keeping this open is enough? To duplicate:

  1. Open https://www.npr.org/
  2. Locate graphic links - there are many of them on the page.
  3. As you hear the graphic link name, press the Down arrow once, or sometimes twice, to move to the heading containing that link. For instance, if you hear "Supreme Court won't enforce West Virginia law banning trans athletes from girls' teams graphic link", press the Down arrow, twice in my case, to move to the heading that says: "link heading level 3 Supreme Court declines to intervene in West Virginia trans law battle". This press also moves past the "heading level 2 link LAW" link whose destination is reported correctly.
  4. Press NVDA+K.

With Chrome 111/112, NVDA incorrectly says: "Not a link."
As another example:

  1. Go to https://www.tomsguide.com/
  2. Look for Graphic links which, on this website, are mostly used to display the author names.
  3. Press the Down arrow once to move to the heading which displays the author name as a link. For instance, you might hear "link heading level 3 Henry T. Casey".
  4. Press NVDA+K.

Again, NVDA incorrectly says "Not a link."
This seems to also be affecting the official 2023.1 release and is duplicable with Alpha 28043/28022. The only difference is that Alpha 28043 can report the destination of graphic links while others can't.

@amirsol81
Copy link
Author

@beqabeqa473 @seanbudd @XLTechie @lukaszgo1 As yet another example, NVDA can't report the destination of links on https://www.nvaccess.org for the following links: Basic Training for NVDA(eBook) heading level 2 link, NVDA Productivity Bundle heading level 2 link, NVDA Expert Certification heading level 2 link, and, Twitter Timeline frame Timeline region link NV Access.

@XLTechie
Copy link
Contributor

XLTechie commented Apr 7, 2023 via email

@amirsol81
Copy link
Author

@XLTechie I can easily open another issue for this if required. As such, I'm waiting for @seanbudd to have the final word on that.

@amirsol81
Copy link
Author

@XLTechie @seanbudd Please note that on https://www.nvaccess.org/ the NVAccess link at the beginning of the Twitter Timeline frame Timeline region isn't a heading, but its destination can't be reported either. I mean this link: https://twitter.com/NVAccess?ref_src=twsrc%5Etfw%7Ctwcamp%5Eembeddedtimeline%7Ctwterm%5Escreen-name%3ANVAccess%7Ctwcon%5Es1_c1
NVDA incorrectly says: not a link. So this one is apparently different from the so-called "links inside headings" issue.

@XLTechie
Copy link
Contributor

XLTechie commented Apr 7, 2023 via email

@amirsol81
Copy link
Author

@XLTechie I did - and also updated the original issue with an extra note to indicate the discovery of two relevant issues.

@amirsol81 amirsol81 changed the title Chrome/Edge: NVDA unable to report the destination of graphic links Chrome/Edge: NVDA unable to report the destination of various link types Apr 7, 2023
@amirsol81
Copy link
Author

@seanbudd @XLTechie @lukaszgo1 @beqabeqa473 et al, any chance of providing fixes for this issue? As things stand right now, the feature seems really limited unless some fixes are provided.

@XLTechie
Copy link
Contributor

XLTechie commented Apr 23, 2023 via email

@amirsol81
Copy link
Author

@XLTechie Yes, the "links inside headings" issue can be duplicated with the latest alpha. Check, for instance, www.npr.org or www.gsmarena.com for more. Also Twitter-related links on www.nvaccess.org are reported as being "not a link".

@Adriani90
Copy link
Collaborator

This affects not only link in headings it is also reproducible in all browsers, but also buttons which act like links. are not considered. See for example these codepens which should ideally also be covered by nvda+k. Maybe it makes sense to cover everything that is wrapped inside a <form> tag, contains any kind of action atribute and input type and contains an url:

form and formaction attributes:

  <form>
    <input type="submit" formaction="https://www.freecodecamp.org/" value="freeCodeCamp">
  </form>

Button example

  <form>
    <button type="submit" formaction="https://www.freecodecamp.org/">freeCodeCamp</button>
  </form>

Form example with post action:

<form method="POST" action="https://www.freecodecamp.org/">
    <button type="submit">freeCodeCamp</button>
  </form>

JavaScript onclick event and the Window.location.href:

<form>
    <input type="button" onclick="window.location.href='https://www.freecodecamp.org/';" value="freeCodeCamp" />
 </form>

Button example:

<button onclick="window.location.href='https://www.freecodecamp.org/';">freeCodeCamp</button>

@seanbudd seanbudd removed this from the 2023.2 milestone Jun 12, 2023
@Qchristensen
Copy link
Member

Conversation on Mastodon requesting this issue. Has anyone looked at what is still required here?

@Qchristensen
Copy link
Member

Comment from Amir on Mastodon:

more examples of that breakage.

  1. Go to the following page: https://www.radio.net/s/ncpr
  2. Find the "Similar Stations" heading. There should be a couple of buttons followed by a list containing some links under it.
  3. NVDA+K doesn't report the destination of those links inside the list. It either says, blank, for graphical links, or, "not a link," for non-graphical links.
    And the same is true about the links which appear as a result of performing a search on this website when non-graphical links are followed by graphical ones.

From: https://tweesecake.social/@amir/110887461367072494

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app/chrome app/edge/anaheim MS browser, chromium based, replaces Spartan in 2019 by Anaheim. NVDA access via IA2. good first issue github features these at https://github.com/nvaccess/nvda/contribute p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants