Hello,
I agree that when it's possible, this should be exposed the rich text
way i.e. using the UIA ExpandCollapseExpandCollapseState property.
Regards,
Leonard
On 20/04/2021 07:39, Marco Zehe wrote:
Hi Dante,** To leave the list, click on the immediately-following link:-
I agree with what was said before, the word "collapsed" or "expanded" should
definitely follow the actual item title/label/whatever, not preceed it. This should be treated like
a tree view item in File Explorer or such, where screen readers usually announce the state after
the item label and optional level, too. Unless users have configured to speak state first, which is
possible in some screen readers.
Also, if this thing was made to actually expose the state of
collapsed/expanded, rather than a hard-coded word, screen readers would also
automatically know what to do with this in Braille. I realize that this would
make the editor much more a rich text environment than it traditionally was,
but that's the world we live in, isn't it?
Marco
Dante Gagne <dmarc-noreply@xxxxxxxxxxxxx> hat am 20.04.2021 01:30 geschrieben:** To leave the list, click on the immediately-following link:-
Hey folks,
Item just came up on my list and I've got an IDEA on how it should be addressed, but I'd
love feedback. Visual Studio provides "outlining" which allows the user to
collapse or expand regions of code for ease of navigation.
For instance consider the following (I'm including line numbers for
understanding)
17 LineBeforeRegion()
18 #region MySample
19 CodeInRegion()
20 #endregion
21 LineAfterRegion()
In Visual Studio, you can use Ctrl+M, Ctrl+M to toggle outlining. If you were
to do that on line 18 here, the sighted user would see:
17 LineBeforeRegion()
18 MySample
21 LineAfterRegion()
However, line 18 would have a visual adorner to show that it's a collapsed
region. It's a single atomic unit, you can't use the cursor keys to navigate
into it or anything like that.
The issue is that the visual adorner on line 18 is not actually part of the
text buffer so it's completely invisible to the screen reader. To a screen
reader user, this code is more like:
17 LineBeforeRegion()
18
21 LineAfterRegion()
Which is probably quite frustrating. (If anyone has run into this, you can use
Ctrl+M, Ctrl+L to toggle ALL outlining, which will expand everything. You can
also use Ctrl+M, Ctrl+P to expand all the regions and disable outlining
altogether).
Now to my question. I want to fix this issue. What would folks want to hear on line 18? I don't
want to just say "MySample" since it would sound like code and be indistinguishable. I
hesitate to say "Begin Collapsed Region MySample End Collapsed Region" since that feels
like overkill. For the record, it is possible to have a collapsed region in the middle of text, so
if you were to try really hard you could have
18 SomeCode() CollapsedRegion SomeOtherCode()
Where "CollapsedRegion" is a collapsed region, but the SomeCode() and
SomeOtherCode() is legitimate code.
I should also point out that the Region identifiers won't be navigable by
character or anything, so right now, it's effectively a single character. We
are looking into a better fix there, but there are a lot of issues with that
(e.g. what happens if you're inside one of those regions and type a letter.
What would that do?).
I currently don't have a solution better than saying "Collapsed: identifier",
realizing that the string might have code before or after that would be rather ambiguous.
So, that's what I'm going to currently go with. But if folks have something they think
would be more useful, I would love to hear it.
As always, thanks for whatever advice you're willing to give!
--Dante
** To leave the list, click on the immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx with the Subject:- faq