Paul Licameli
2017-05-18 15:05:02 UTC
David Bailes' adding of commands to shift clips left and right, and Robert
HÀnggi's reminder about the slider increase/decrease commands, has set me
thinking thus:
Such commands combine "verb" and "object." It's not good that we need one
command for each useful combination, and therefore we proliferate many
commands like these. Better that we have a user interface to make the
recombinations more easily expressed as needed with your fingertips.
Better, in fact, that even without a talking desktop, Audacity should still
contain something like the VoiceOver navigation.
When I use VoiceOver, interactive things in applications are grouped into a
logical hierarchy. There are keystrokes that universally mean "navigate
across the hierarchy." These are control+alt+arrow -- any one of the four
arrows, to indicate the geometrical direction, but logically it always
moves across the hierarchy, from one sister to another.
Likewise "navigate up hierarchy" is universally shift+control+alt+up and
"navigate down hierarchy" is shift+control+alt+down.
Then for a properly implemented slider (not all of Audacity's are, yet),
you navigate "to" it, then "into" it, then use control+alt+arrows to adjust
it. And an adjustable clip might act like a slider.
I am less familiar with Jaws and NVDA (or Orca, which wxWidgets can't
interact with). I presume there is some similar keystroke convention.
Now notice that in our code, already there is a notion of focused track,
and it is maintained in the class TrackPanelAx, even if accessibility is
not enabled. It is drawn with a yellow border, which is like the black
border that the talking desktop draws over it. They yellow and black
borders always move together. Audacity implements change of focus by means
of unmodified presses of arrow keys, while VoiceOver also permits the other
control+alt+arrow convention.
I propose that what is already done for maintaining Audacity's notion of
focus in a wxAccessible class, even without accessibility -- should be
generalized to other things like the pan and gain sliders or individual
clips. Audacity should define a more extensive wxAccesible hierarchy of
objects, and use it in normal excution. Some keystrokes -- I don't know
which -- should be reserved for navigation of this hierarchy and made
non-reassignable in Preferences.
I did not have this in mind when I developed my track panel refactor, but I
mean to review my work and (I hope) push it, with this future development
in mind.
I do not propose to realize these ideas in 2.2.0, or do it all myself, but
perhaps David would be interested in extending my work in this direction,
once I share it.
David made some mention of alteration of samples or envelope points by
keyboard. I don't know what details are contemplated here. It could be an
extension of this.
PRL
HÀnggi's reminder about the slider increase/decrease commands, has set me
thinking thus:
Such commands combine "verb" and "object." It's not good that we need one
command for each useful combination, and therefore we proliferate many
commands like these. Better that we have a user interface to make the
recombinations more easily expressed as needed with your fingertips.
Better, in fact, that even without a talking desktop, Audacity should still
contain something like the VoiceOver navigation.
When I use VoiceOver, interactive things in applications are grouped into a
logical hierarchy. There are keystrokes that universally mean "navigate
across the hierarchy." These are control+alt+arrow -- any one of the four
arrows, to indicate the geometrical direction, but logically it always
moves across the hierarchy, from one sister to another.
Likewise "navigate up hierarchy" is universally shift+control+alt+up and
"navigate down hierarchy" is shift+control+alt+down.
Then for a properly implemented slider (not all of Audacity's are, yet),
you navigate "to" it, then "into" it, then use control+alt+arrows to adjust
it. And an adjustable clip might act like a slider.
I am less familiar with Jaws and NVDA (or Orca, which wxWidgets can't
interact with). I presume there is some similar keystroke convention.
Now notice that in our code, already there is a notion of focused track,
and it is maintained in the class TrackPanelAx, even if accessibility is
not enabled. It is drawn with a yellow border, which is like the black
border that the talking desktop draws over it. They yellow and black
borders always move together. Audacity implements change of focus by means
of unmodified presses of arrow keys, while VoiceOver also permits the other
control+alt+arrow convention.
I propose that what is already done for maintaining Audacity's notion of
focus in a wxAccessible class, even without accessibility -- should be
generalized to other things like the pan and gain sliders or individual
clips. Audacity should define a more extensive wxAccesible hierarchy of
objects, and use it in normal excution. Some keystrokes -- I don't know
which -- should be reserved for navigation of this hierarchy and made
non-reassignable in Preferences.
I did not have this in mind when I developed my track panel refactor, but I
mean to review my work and (I hope) push it, with this future development
in mind.
I do not propose to realize these ideas in 2.2.0, or do it all myself, but
perhaps David would be interested in extending my work in this direction,
once I share it.
David made some mention of alteration of samples or envelope points by
keyboard. I don't know what details are contemplated here. It could be an
extension of this.
PRL