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
Introduce role-based braille mapper #4105
Comments
Attachment brlmapper.patch added by aliminator on 2014-04-30 14:15 |
Comment 1 by jteh on 2014-04-30 21:59
|
Comment 2 by aliminator (in reply to comment 1) on 2014-05-05 10:01
I am not sure whether all users will agree to the same presentation scheme. If this is the case it should be definitely hard-coded and used as default. But if this is not the case then the it could be assumed that the best representation scheme is the current one. Therefore two representation functions. Even though the scheme agreed on is hard-coded - it is nevertheless a two-step process which in this case is expressed using two functions.
I understand the need to reduce complexity by using only one representation function. But I consider this functionality as the extension of the existing one. Pre-defined mappings could be hard-coded (see above) or they could be stored on a per-language basis such as the character descriptions. But wouldn't this be too complex?
It does not fix that problem completely but provides a mechanism to "separate" those settings by removing. That means that you can e.g. remove the hotkey from the braille representation although its appearance is specified in the settings and thus is still spoken.
I didn't have a look at the speech code, so cant' say how complex it would be. But if it does work similar to the braille layer it should be possible to generalize the code.
This was intended for clickable elements such as buttons or links. It doesn't work well in virtual buffers - I couldn't figure out the reason. At the moment mapping on a per-role basis is supported as annotated in the code.
I would like to add both GUI and documentation. But this should be done after the basis of this framework are discussed and thisfeature is going to be integrated. |
Comment 3 by aliminator on 2014-05-05 10:09 |
Comment 4 by halim on 2014-05-16 06:55 @nvda Developers: Please have a look to this patch. and consider applying it to nvda. It doesn't change nvda's current braille representation if no mappings are defined in the ini file. |
Comment 5 by winman3000 on 2014-06-05 12:06 |
Comment 6 by werwoelfchen on 2014-06-08 12:37 |
Comment 7 by aliminator on 2014-06-10 07:22 |
Comment 8 by jteh (in reply to comment 2) on 2014-09-10 10:04 Replying to aliminator:
I think the first step, then, is to work out what users actually want here. It's very possible some users would prefer slight deviations, but these are not the primary concern. The bigger question is whether there are major changes desired by most users. Even if there are significant differences of opinion, it may still be better to implement smaller options (e.g. a check box to display states first) rather than a template based system. The problem with a template based system such as proposed here is that it is extremely difficult to take all possible requirements into account. Furthermore, once it's implemented, it's very hard to support additional requirements later without breaking compatibility with the original scheme. For example, the current patch can't handle the following:
Initially, my feeling was that the default scheme should use the same system. Rather than being hard-coded as a separate function, it would be specified as the default configuration. The advantage of this is that it means less code to maintain and that it would be extremely simple to make minor tweaks once there is a GUI< since the GUI would show the default configuration already. As you point out, this does present issues for localisation. However, there are other cases where locale specific default configuration might be useful, so perhaps this is another case for that. Still, if we do go with a template based approach, perhaps you're right that it's better to extend rather than incorporate all of the logic. However, this isn't that relevant until we answer the questions above. |
Comment 9 by aliminator (in reply to comment 8) on 2014-09-11 11:43
As an example #2955 is requested by several users. Yes, it can be incooperated easily. But it is not configurable (according to the patch). So, if some users do not agree to that scheme they would request a corresponding option.
The second item mentioned can be done by assigning two same values to corresponding roles. But the first point is indeed difficult to solve and cannot performed by the patch. There might be another solution, not that flexible though but might integrate better with the existing infrastructure. |
Comment 10 by aliminator on 2015-06-21 08:25 |
I would be interested to see Braille users opinions on this issue. CC @derekriemer @LeonarddeR and others |
For me, since the major enhancements in Braille presentation in 2017.3, I
will wait by users comments...
Rui
…-----Mensagem Original-----
De: Ethan Holliger
Data: 15 de agosto de 2017 00:11
Para: nvaccess/nvda
Cc: Subscribed
Assunto: Re: [nvaccess/nvda] Introduce role-based braille mapper (#4105)
I would be interested to see Braille users opinions on this issue. CC
@derekriemer @LeonarddeR and others
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@bramd could you please Elaborate on the use case @LeonarddeR mentioned above? |
Could someone upload brlmapper.patch noted in #4105 (comment) here? @Andre9642 is interested. cc @michaelDCurran @Qchristensen |
I should have this on another machine. As soon as I find it# I will upload it here. |
Hi @taymun26,
did you have any chance to look for the trac attachment?
thanks
|
Old attachment from trac: brlmapper.patch.zip |
Reported by aliminator on 2014-04-30 14:14
Very often in NVDA and especially when using braille, role names and their states shown are either lengthy or at a "wrong" place.
By referring to "wrong place" it is meant that it is not intuitive and users have to search e.g. for the control state (e.g. for checkboxes).
This is the case even when braille display is tethered to review.
Furthermore the display representation is coupled to the settings set to speech.
Uncoupling them has the advantage of working faster especially when users work with both braille and speech.
A "braille mapper" can give full control to the user to customize braille output; thus every user can define his own scheme.
Following can be configured:
Braille mappings can either be global or application-specific and are stored in the nvda.ini configuration or application-specific one.
Braille mappings are defined on a per-controltype basis where the controltype is specified as ints which, at the moment is not intiutive. If a mapping is not defined for a controltype it falls back to the usual
representation scheme.
The mapping can take any text plus specific patterns which indicate variables such as values/names, hotkeys etc.
This is a list of patterns:
Pattern Meaning
%t Name or value
%s states
%h keyboardShortcuttext
%i current index
%I total amount of items
%c columnNumber
%o rowNumber
%d description
Example: To show the state of the checkbox in front of its name or value (without hotkey) following entry has to be in the configuration:
5 = %s %t
Furthermore the key dot78roles in the configuration file lists all roles which text should be marked by dots 7 and 8.
Both ruling mechanisms may work together.
A GUI hasn't been created yet. Eventually, only a few users do need this and hence can do it manually (as it was the case with gestures) or an addon can be delivered to provide the GUI. It would be great to have at least this functionality in the core since it can not be provided by addons.
The patch I attached contains modifications of the config/init.py (for the configuration template object) and the braille.py file which contains following modifications:
The text was updated successfully, but these errors were encountered: