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 >