locked Re: control names


Rui Fontes
 

If NVDA itself do not always use the same order reading the name and label of controls, why the user can not set his prefered order?


By instance in NV Access home page, if I read with arrows, I hear:

link    Support NV Access

and if I navigate with K, I hear:

Support NV Access  link  


So, for me, the user should be able, in Advanced options or in a new category, Verbosity options, , to choose his prefered announce order...


Best regards,

Rui Fontes
NVDA portuguese team



Às 10:38 de 30/01/2022, Rowen Cary escreveu:

Hi,

I understand what you're saying, but when we use the up and down arrows to browse the web page, NVDA will report the word "link" first, and then report the text of the link, which is inefficient as some people say. If I remember correctly, there is also a discussion about this in NVDA's Issue, can you share your opinion? Why didn't NVAccess make some improvements to this?

Grateful On Sun, Jan 30, 2022 at 12:54 PM, Joseph Lee wrote:

Hi all,

Brian's reasons are very convincing. Now let me give you a more convincing reason:

Short answer: Don, I'm sorry, but your suggestion cannot become reality without "warping reality itself."

Explanation: internally, NVDA uses several functions to obtain control properties such as name (label), role, state, selection status, among other things. These functions pass around two things:

  • Object properties: a dictionary of property names and their current (or sometimes, cached) values. For example, one of the properties is "role", which records NVDA's understanding of the role of the object (as reported by accessibility API's).
  • Speech sequence: object properties are then sequenced to give you the speech you hear, typically in the following order: name, role, custom role text 9if defined by contrls and web documents), state, description, value, table coordinate information (if appropriate), and other properties. Speech sequences are stored as a list of strings and are added (concatenated) together to present control information in a variety of forms, including speech and braille.

As Brian observed, the words "start button" carries two control properties: label (Start) and role (button). In reality, the Start button includes other properties, but to NVDA, what's more important in this case are label and role. The process involved in NVDA saying "Start button" is:

  1. NVDA notices that you have moved system focus to a button named "Start".
  2. NVDA will create an internal representation of this control and ask accessibility API's for information such as label and role. NVDA gathers other things such as button location, but these are not important.
  3. NVDA will represent object properties in a format that can be understood by various output processors. This is when object properties dictionary is passed to speech, braille, and other output modules.
  4. The speech output processor will construct a speech sequence based on object properties given. The sequence will contain the terms "name: Start" and "role: button" (at a high-level, but it is represented differently internally). This sequence is then gathered and added together to produce the words "Start button".
  5. Similarly, braille output processor will format these properties for display on a braille display, except role names are shortened. As a result, braille users will see "Start btn" on their displays.

Now what will it take to "warp reality?" I'll leave that up to you (hint: it isn't easy not just because you need to test a lot, but also thanks to philosophical discussions). Until next time...

P.S. I feel that, lately, I've become some kind of a historian or something. If only I can travel back to the 1980's (Stranger Things, anyone?).

Cheers,

Joseph

Join nvda@nvda.groups.io to automatically receive all group messages.