[macvoiceover] Re: Programming with VO

  • From: Bryan Smart <bryansmart@xxxxxxxxxxxxxx>
  • To: "macvoiceover@xxxxxxxxxxxxx" <macvoiceover@xxxxxxxxxxxxx>
  • Date: Wed, 1 Dec 2010 13:49:18 -0500

Direct link:

http://groups.google.com/group/mv-dev

or

Send a message to 

mv-dev+subscribe@xxxxxxxxxxxxxxxx

For a while, I wasn't receiving notifications from Google about pending 
membership requests, so, if you tried before, please try again.

Bryan

-----Original Message-----
From: macvoiceover-bounce@xxxxxxxxxxxxx 
[mailto:macvoiceover-bounce@xxxxxxxxxxxxx] On Behalf Of Tim Burgess
Sent: Wednesday, December 01, 2010 3:41 AM
To: macvoiceover@xxxxxxxxxxxxx
Subject: [macvoiceover] Re: Programming with VO

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
>
>
> 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: