[macvoiceover] Re: Programming with VO

  • From: "Tim Burgess" <tim@xxxxxxxxxxxxx>
  • To: <macvoiceover@xxxxxxxxxxxxx>
  • Date: Wed, 1 Dec 2010 08:40:45 -0000

Me too.

Best wishes.

Tim Burgess
Raised Bar Ltd
Phone:  +44 (0)1827 719822

Don't forget to vote for improved access to music and music technology at

http://www.raisedbar.net/petition.htm
 

-----Original Message-----
From: macvoiceover-bounce@xxxxxxxxxxxxx
[mailto:macvoiceover-bounce@xxxxxxxxxxxxx] On Behalf Of Gabe Vega
Sent: 01 December 2010 02:03
To: macvoiceover@xxxxxxxxxxxxx
Subject: [macvoiceover] Re: Programming with VO

direct link to mv-dev please. I'd be glad to join.

On 11/30/10, Bryan Smart <bryansmart@xxxxxxxxxxxxxx> wrote:
> Long delay in getting back to this thread, but...
>
> Sorry that I misunderstood you. Thought you said that it wasn't possible
at
> all, not that it wasn't possible with Interface Builder.
>
> The problem with Interface Builder isn't so much that it is inaccessible
to
> VoiceOver, as that it is an unsuitable type of program for a blind person
to
> use for this sort of work. Back when I started exploring programming
options
> for the Mac, I found lots of complaints about how IB didn't work. I
> discovered that, with some workarounds, it actually did work, a bit. Most
> all of the IB user interface is accessible. However, VoiceOver, as good of
a
> screen reader as it is, doesn't really provide much of a way for us to get
a
> grasp on layout. VoiceOver on iOS does a good job. You can feel around the
> screen, and know exactly where controls are located. VO on OS X, with a
> track pad, does sort of the same thing, but doesn't seem as accurate when
it
> comes to layout. If you interact with a toolbar, for example, you'll
clearly
> see this demonstrated. Moving horizontally on the track pad navigates
> between buttons, but the track pad is completely oblivious to any sort of
> vertical spacing. Now, I know that a tool bar is just one line, so it
> shouldn't  really matter. In practical day-to-day terms, the current way
is
> probably the better way. Excluding this example, this sort of zoning
happens
> in other places. Desktop VO might split the track pad in left and right
> halves to let you know there is a side bar area, but the proportions that
it
> chooses don't seem to be related to the actual size on the screen. So, on
> iOS, the tactile position is very literal, but, on the desktop, the
spacing
> is meant more to convey meaning to you, rather than to accurately
represent
> the screen. Given this, it is very difficult to imagine using a program
like
> Interface Builder, regardless of its accessibility level. Suppose you're
in
> a window, containing a button and some static text. Since VO isn't showing
> you literal positions, how can you drag the button to the right location?
> The answer is that you can't.
>
> When it comes to formatting, IB includes some positional guides that help
> line up controls. These are like grids that are overlaid on the window. If
> one of these grids is enabled for a part of the window, then you're shown
> little boxes, and you drag a button in to one of the boxes, then IB snaps
> that button to an appropriate exact position. I have no idea how that sort
> of info could be conveyed to a VoiceOver user. Maybe each zone of the
> grid/guide could be a blank container that they'd interact with? Except,
if
> you did, you'd need to perform the release step of drag and drop there,
and
> with an empty container, I'm not sure if you could use VO-Command-F5 to
move
> the mouse to the position prior to releasing the item being drug.
>
> After realizing all of this, I was a lot less upset with the lack of
> accessibility, or, more accurately, the lack of my ability to accomplish
> anything meaningful with IB. It wasn't a matter of Apple needing to add
> labels for controls, or anything so straight forward. The program was
> fundamentally designed to be a visual tool, and trying to make it work
> without vision is a challenge that would require changes in not only it,
but
> in the screen reader, too. Quite a huge project, to be sure. That's a bit
> like asking Microsoft to make Visio accessible.
>
> Incidentally, in IB, you can set hierarchical relations between controls
by
> using cut/copy/paste in the outline view. You can open the inspector for
any
> graphical control, and set its position by manually entering coordinates.
> You can establish data bindings by directly editing in xCode, and IB will
> pick up on them. Still, while you "can" work this way, it requires a
massive
> amount of effort. The effort, in my mind, is too much. For most people,
the
> user interface is the easiest part of the app to slap together. For us,
this
> really is like trying to use a screw driver to hammer in a nail, since the
> whole process is counterintuitive to the way that we think about user
> interfaces.
>
> I don't know how much you understand about how IB works behind the scenes,
> but any work that a person performs for interface design in IB is saved as
> NIB/XIB markup files. When your app starts, Cocoa loads this file from the
> bundle, and, based on the parameters in the markup file, creates the
needed
> objects that make up your user interface. This is exactly what happens
with
> Renaissance, except the parameters just originate in a differently
formatted
> markup file. Apple assumes that most people will be using Interface
Builder,
> so their markup is optimized for small size and speed of loading, rather
> than to be human readable and editable. The results are the same, though.
> Renaissance also includes the extra step of automatic formatting, if you
> want it.
>
> I hate teasing people with pre-announcements, but, when threads like this
> come up, it is hard not to do so. The Renaissance markup is quite easy to
> read and edit by hand. Still, there is no reason that it must be read or
> edited by hand. Just like how Interface Builder is really an editor for
> NIB/XIB files, it is certainly possible to make an editor for the GSMARKUP
> files used by Renaissance. That sort of program is one of my current
> projects. I'm currently calling it Interface Describer. *smile* Once
> finished, it can be registered as the creator/owner for GSMARKUP files,
and,
> when that happens, you'll be able to simply open the GSMARKUP files in
your
> xCode projects in the way that sighted people open the NIB/XIB files. It
> will be pretty much a full replacement for Interface Builder at that point
> for people that want to use dynamically generated interfaces. Since the
> objects that Renaissance creates at run-time support the interfaces of the
> Cocoa objects, someone using Interface Describer to create their interface
> need know nothing about Renaissance to use it. They edit their interface
> with Interface Describer, and code like they're using regular Cocoa
objects.
> The transparent operation is a cool concept for me to contemplate.
>
> The Java and Mono stuff might be useful, in ways, but, as far as I know,
> Renaissance is the only way to do this sort of thing if you want to write
> native Object C apps.
>
> I'm glad to hear that you use it and like it. I was expecting way more
> excitement and participation with it than has happened. That is really
> disappointing. Since this is a free project, it is the enthusiasm of the
> people using it, and seeing the software that they build with it, that
would
> give me the energy to keep working on it. I guess there aren't too many
> blind people that are interested in programming for OS X. An iOS version
> might be better received. With the desktop version, I was able to build on
> the massive work that was already undertaken for the GNUstep version. On
> iOS, the work would involve almost an entire rewrite. I have full-time
work
> and other hobbies, though, so don't know if I have that kind of time.
Maybe
> if I could split the work with a group of people, we could make it happen,
> but, so far, programming interest among blind people for any Apple stuff
has
> been low, as best as I can tell.
>
> If you're not on MV-Dev, think about coming over. I really wish that we
> could get more traffic going on that list with blind coders.
>
> Bryan
>
> -----Original Message-----
> From: macvoiceover-bounce@xxxxxxxxxxxxx
> [mailto:macvoiceover-bounce@xxxxxxxxxxxxx] On Behalf Of Travis Siegel
> Sent: Thursday, November 25, 2010 1:51 AM
> To: macvoiceover@xxxxxxxxxxxxx
> Subject: [macvoiceover] Re: Programming with VO
>
>
> On Nov 24, 2010, at 7:32 PM, Bryan Smart wrote:
>
>> Travis, this isn't correct. My RenaissanceX library will automatically
>> generate user interfaces at run-time that conform to Apple's Human
>> Interface Guidelines. If you wish, it will also properly format
>> (arrange/size/space) controls, based on their logical relationships.
>> You can override that automatic formatting behavior for a single
>> control, a group of controls, or as much of the UI as you'd like.
>
> Right, all of which is done without interface builder.
> The main point of my email was that ibuilder is *not* accessible other
than
> modifying existing interfaces already built in interface builder.
> I did mention there were other tools, though I didn't specifically mention
> renaissance, though I do have it, and mono as well, along with sdl, and
> sfml, all of which can be used to varying degrees to accomplish interface
> building (some definitely better than others), but the mere fact that the
> tools provided by apple are *not* usable by voiceover users is a real kick
> in the pants, since they have put so much work into voiceover itself.
It's
> really a shame if you ask me, but since nobody did, I guess it doesn't
make
> a whole lot of difference.
>
>>
>> Click on the link below to go to our homepage.
>> http://www.icanworkthisthing.com
>>
>> Manage your subscription by using the web interface on the link below.
>> //www.freelists.org/list/macvoiceover
>>
>> Users can subscribe to this list by sending email to
>> macvoiceover-request@xxxxxxxxxxxxx
>> with 'subscribe' in the Subject field OR by logging into the Web
>> interface at //www.freelists.org/list/macvoiceover
>>
>>
>> Click on the link below to go to our homepage.
>> http://www.icanworkthisthing.com
>>
>> Manage your subscription by using the web interface on the link below.
>> //www.freelists.org/list/macvoiceover
>>
>> Users can subscribe to this list by sending email to
>>  macvoiceover-request@xxxxxxxxxxxxx
>> with 'subscribe' in the Subject field OR by logging into the Web
>> interface at //www.freelists.org/list/macvoiceover
>>
>


-- 
Gabe Vega A+, Net+, ATACP
The Tech of all Techs
http://thebt.net
(623) 565-9357
>
> Click on the link below to go to our homepage.
> http://www.icanworkthisthing.com
>
> Manage your subscription by using the web interface on the link below.
> //www.freelists.org/list/macvoiceover
>
> Users can subscribe to this list by sending email to  
>  macvoiceover-request@xxxxxxxxxxxxx
> with 'subscribe' in the Subject field OR by logging into the Web 
> interface at //www.freelists.org/list/macvoiceover
>

>
> Click on the link below to go to our homepage.
> http://www.icanworkthisthing.com
>
> Manage your subscription by using the web interface on the link below.
> //www.freelists.org/list/macvoiceover
>
> Users can subscribe to this list by sending email to  
>  macvoiceover-request@xxxxxxxxxxxxx
> with 'subscribe' in the Subject field OR by logging into the Web 
> interface at //www.freelists.org/list/macvoiceover
>

Other related posts: