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 >