[macvoiceover] Re: Programming with VO

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

Urm, turns out that I'm not a moderator on that group. *laugh* After a while, 
there are too many, and I get confused.

Anyway, I know that there are pending requests, so I'll message the group about 
it.

Traffic has picked up recently. One of our members just had their app accepted 
for the iOS App Store, the first blind dev to make that happen.

Bryan

-----Original Message-----
From: macvoiceover-bounce@xxxxxxxxxxxxx 
[mailto:macvoiceover-bounce@xxxxxxxxxxxxx] On Behalf Of Bryan Smart
Sent: Wednesday, December 01, 2010 1:49 PM
To: macvoiceover@xxxxxxxxxxxxx
Subject: [macvoiceover] Re: Programming with VO

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