fluid-work IRC Logs-2012-08-14
[09:21:20 CDT(-0500)] <michelled> cindyli: when you are free, can we have a Floe planning meeting?
[09:22:53 CDT(-0500)] <michelled> alexn1: this is the wiki page I was referring to: http://wiki.fluidproject.org/display/fluid/Floe+Iteration+Plan
[09:23:41 CDT(-0500)] <alexn1> michelled: thanks for the link. (I found and was looking at page as well)
[09:30:53 CDT(-0500)] <cindyli> anytime, michelled
[09:31:54 CDT(-0500)] <michelled> now's good - anastasiac, alexn1 - good for you too?
[09:32:05 CDT(-0500)] <alexn1> michelled: yes !
[10:05:50 CDT(-0500)] <colinclark> kasper: http://issues.gpii.net/browse/GPII-29?focusedCommentId=10014#comment-10014
[10:20:57 CDT(-0500)] <thealphanerd> colinclark: you got a minute?
[10:21:02 CDT(-0500)] <colinclark> thealphanerd: yes
[10:21:10 CDT(-0500)] <thealphanerd> so I got basic aria working now
[10:21:22 CDT(-0500)] <colinclark> especially if you can point me to a TextMate 2 dark theme that doesn't totally suck
[10:21:32 CDT(-0500)] <thealphanerd> indeed I can
[10:21:51 CDT(-0500)] <thealphanerd> http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/
[10:22:29 CDT(-0500)] <thealphanerd> keep in mind that you need to manually install the themes for textmate 2
[10:23:07 CDT(-0500)] <thealphanerd> ~/Library/Application Support/Avian/Pristine Copy/Themes
[10:25:15 CDT(-0500)] <thealphanerd> so is there an event for an aria button press/
[10:25:52 CDT(-0500)] <colinclark> thealphanerd: No. Why do you ask?
[10:25:57 CDT(-0500)] <colinclark> Remember, ARIA doesn't do anything
[10:26:01 CDT(-0500)] <colinclark> it just describes things
[10:26:11 CDT(-0500)] <thealphanerd> so you can move around the piano using aria now
[10:26:17 CDT(-0500)] <thealphanerd> and everything is labelled
[10:26:29 CDT(-0500)] <thealphanerd> BUTโฆ there is no way to play the notes
[10:26:53 CDT(-0500)] <thealphanerd> you can "press" the button, but I have no idea how to make that do anything
[10:27:43 CDT(-0500)] <thealphanerd> the only solution I could think of would be to listen to keydown of space barโฆ and check what dom element is currently selectedโฆ but that seems hacky
[10:32:26 CDT(-0500)] <colinclark> I told you about that part
[10:32:43 CDT(-0500)] <colinclark> You need to use our jQuery keyboard accessibility plugin
[10:32:45 CDT(-0500)] <colinclark> remember?
[10:32:54 CDT(-0500)] <colinclark> fluid.activatable()?
[10:33:19 CDT(-0500)] <colinclark> then you just bind it up to whatever methods your click events are bound to
[10:33:51 CDT(-0500)] <thealphanerd> ahhhh
[10:33:55 CDT(-0500)] <thealphanerd> didn't remember
[10:34:04 CDT(-0500)] <thealphanerd> ok so then that brinds me to the next question
[10:34:19 CDT(-0500)] <thealphanerd> I've got fluid.tabbable working
[10:34:39 CDT(-0500)] <thealphanerd> but I'm having no luck with fluid.selectable
[10:35:31 CDT(-0500)] <thealphanerd> I'm able to traverse the application with voiceover without itโฆ but I couldn't get it to work last night.
[10:38:02 CDT(-0500)] <thealphanerd> I just pushed the latest changes to the aria branch
[10:40:24 CDT(-0500)] <colinclark> sorry, that sounded crankier than I had intended, thealphanerd
[10:40:29 CDT(-0500)] <colinclark> one of those days
[10:40:41 CDT(-0500)] <colinclark> So what's the problem with fluid.selectable()?
[10:45:04 CDT(-0500)] <colinclark> thealphanerd: This might be my favourite commit log yet: "silly me'"
[10:46:07 CDT(-0500)] <colinclark> thealphanerd: couple of comments
[10:46:09 CDT(-0500)] <colinclark> https://github.com/TheAlphaNerd/Piano/blob/aria/js/aria.js#L78
[10:46:29 CDT(-0500)] <colinclark> If you want to get an item from a jQuery, but continue to use it as a jQuery, you want the method .eq()
[10:46:41 CDT(-0500)] <colinclark> rather than unwrapping it and rewrapping it like you are doing here
[10:46:49 CDT(-0500)] <colinclark> So this line would read:
[10:47:01 CDT(-0500)] <colinclark> var instrumentType = that.container.children().eq(0);
[10:47:18 CDT(-0500)] <colinclark> So, what is this instrumentType variable, anyway?
[10:48:41 CDT(-0500)] <thealphanerd> colinclark: I purposely had it not being a jquery
[10:48:52 CDT(-0500)] <colinclark> but it is a jQuery
[10:48:55 CDT(-0500)] <thealphanerd> as I just want to grab the first div within
[10:49:01 CDT(-0500)] <colinclark> you unwrap it and then wrap it back up, all in one line
[10:49:24 CDT(-0500)] <thealphanerd> oh yeah...
[10:49:40 CDT(-0500)] <thealphanerd> so I wanted to make a query that could grab the first divโฆ wether it be piano or grid
[10:49:46 CDT(-0500)] <thealphanerd> but just the first div
[10:49:53 CDT(-0500)] <thealphanerd> children return all of them though
[10:49:56 CDT(-0500)] <colinclark> children().eq(0) will get you the first child
[10:49:57 CDT(-0500)] <colinclark> as a jQuery
[10:50:19 CDT(-0500)] <thealphanerd> cool!
[10:50:34 CDT(-0500)] <thealphanerd> got it
[10:50:36 CDT(-0500)] <jessm> i missed standup and didn't login to IRC โ slacker! here's what i'm up to: did a draft of the IDI equipment loan, spoke with James about a Floe preso we're scheduling, talked to Iris about some HR-related items
[10:50:42 CDT(-0500)] <colinclark> So, my sense is that you need to include a "selectablesSelector"
[10:51:05 CDT(-0500)] <colinclark> the Infusion demo has the case where all the children of the container are selectable
[10:51:18 CDT(-0500)] <colinclark> but, if I remember your markup correctly, you've actually got sub-children that should be selectable
[10:52:30 CDT(-0500)] <colinclark> http://wiki.fluidproject.org/display/fluid/Keyboard+Accessibility+Plugin+API#KeyboardAccessibilityPluginAPI-selectable
[10:55:19 CDT(-0500)] <colinclark> probably just selectableSelector: ".note" would do the trick
[10:56:13 CDT(-0500)] <colinclark> And then your commented-out onSelect and onUnselect options would bind to some method that displayed some kind of keyboard highlighting for the key
[10:56:22 CDT(-0500)] <colinclark> you can go with the default for now, but as you've probably already seen, it can be ugly
[10:56:25 CDT(-0500)] <thealphanerd> colinclark: brb
[10:57:53 CDT(-0500)] <colinclark> then you're gonna use "activatable" to fire noteOn and noteOff events
[11:04:56 CDT(-0500)] <thealphanerd> colinclark: ok that was something I meant to ask youโฆ regarding those functions. so I use those to do something on selection. I guess it doesn't highlight by default
[11:05:58 CDT(-0500)] <thealphanerd> also what's the difference between selectableSelector and selectableElements?
[11:06:25 CDT(-0500)] <colinclark> The former is a selector--a string
[11:06:30 CDT(-0500)] <colinclark> the latter is a jQuery
[11:08:45 CDT(-0500)] <thealphanerd> ahhh
[11:09:01 CDT(-0500)] <thealphanerd> that makes sense
[11:09:09 CDT(-0500)] <thealphanerd> so selectable is working now
[11:09:23 CDT(-0500)] <colinclark> nice!
[11:09:36 CDT(-0500)] <colinclark> then just use activatable for actually pressing the key
[11:09:57 CDT(-0500)] <colinclark> I guess the next question will be if you want some kind of toggling behaviour
[11:10:05 CDT(-0500)] <colinclark> or "press for as long as you want it to play"
[11:10:24 CDT(-0500)] <colinclark> probably the former is easier, and polyphonic out of the box
[11:11:05 CDT(-0500)] <thealphanerd> well shift will still work for polyphony
[11:11:26 CDT(-0500)] <colinclark> cindyli1: Do you want to push my https://github.com/fluid-project/builder/pull/2 pull request to the Builder's project repo?
[11:12:22 CDT(-0500)] <thealphanerd> oh yeahโฆ another issue that was going on. I can't seem to get it to traverse in the correct order. it always goes through the white notes first, then the black notes (I'm assuming it is based on the order that the elements were rendered in the dom)
[11:12:41 CDT(-0500)] <thealphanerd> now I could give each element a tab-index
[11:12:59 CDT(-0500)] <thealphanerd> but won't that have things getting weird once there are multiple pianos
[11:13:37 CDT(-0500)] <colinclark> yes, it goes in DOM order
[11:13:47 CDT(-0500)] <colinclark> and tabindex won't help you there
[11:14:02 CDT(-0500)] <colinclark> I THINK you should be able to do a little trick
[11:14:08 CDT(-0500)] <colinclark> Though I've never tried it
[11:14:32 CDT(-0500)] <colinclark> You'll have to manually grab each key and place it in an array in the order you want it to be navigated in
[11:14:50 CDT(-0500)] <colinclark> Or you could write some kind of sort comparator
[11:15:04 CDT(-0500)] <cindyli1> colinclark: sorry, i don't have push access to builder project repo. probably Justin_o can help with the push?
[11:15:06 CDT(-0500)] <colinclark> And then you should be able to pass that ordered array as your "selectableElements"
[11:15:14 CDT(-0500)] <colinclark> cindyli1: aha, okay, thanks
[11:15:14 CDT(-0500)] <thealphanerd> my concern would be that it might change the svg rendering
[11:15:23 CDT(-0500)] <colinclark> thealphanerd: How could it do that?
[11:15:35 CDT(-0500)] <thealphanerd> ohhh an array on top of the elemnts that already exist
[11:15:39 CDT(-0500)] <colinclark> yes
[11:15:56 CDT(-0500)] <colinclark> I'm not positive it will work
[11:15:58 CDT(-0500)] <colinclark> but it's worth a shot
[11:16:59 CDT(-0500)] <thealphanerd> colinclark: the list that I'm using that label the keys has everything in the right order
[11:17:14 CDT(-0500)] <Justin_o> cindyli1, colinclark: talking about the builder pull request?
[11:17:20 CDT(-0500)] <colinclark> Justin_o: yup
[11:17:35 CDT(-0500)] <colinclark> I think we should grant cindyli1 push access
[11:17:36 CDT(-0500)] <thealphanerd> it is a ulโฆ and each li has the note number and proper name
[11:17:43 CDT(-0500)] <colinclark> given that she has worked substantially on it in the past
[11:17:57 CDT(-0500)] <Justin_o> colinclark: funny.. i had thought cindyli1 already had it
[11:18:18 CDT(-0500)] <colinclark> thealphanerd: Is it a list of actual DOM elements? Or jQuery elements? (either is fine)
[11:18:33 CDT(-0500)] <thealphanerd> actual dom element
[11:18:41 CDT(-0500)] <colinclark> great
[11:18:53 CDT(-0500)] <colinclark> try using that as your selectableElements
[11:18:59 CDT(-0500)] <colinclark> you'll have to wrap it as a jQuery, I'd guess
[11:19:00 CDT(-0500)] <colinclark> but who knows?
[11:19:01 CDT(-0500)] <cindyli1> Justin_o: i have on fluid studios, but not builder
[11:20:34 CDT(-0500)] <colinclark> Justin_o: You were asking about process for granting commit access to non-Infusion repositories
[11:20:43 CDT(-0500)] <Justin_o> colinclark: yep
[11:20:50 CDT(-0500)] <colinclark> I don't think we have a formal process for these less formal repositories
[11:21:10 CDT(-0500)] <Justin_o> colinclark: currently the builder is restricted to the committers team
[11:21:23 CDT(-0500)] <colinclark> Aha
[11:21:35 CDT(-0500)] <colinclark> interesting
[11:21:57 CDT(-0500)] <colinclark> So the argument here, I guess, is that the Builder, while being in a different repo, is integral to Infusion
[11:22:11 CDT(-0500)] <colinclark> I'm actually playing with the idea that the new build scripts will also be in a separate repository
[11:22:13 CDT(-0500)] <colinclark> so this is interesting
[11:23:02 CDT(-0500)] <Justin_o> colinclark: so just some minor background.. github restricts access based on teams..
[11:23:47 CDT(-0500)] <Justin_o> colinclark: we currently have 2 teams with push access: Committers and ops
[11:23:47 CDT(-0500)] <colinclark> I guess the key question is whether or not the Builder actually counts as what I was calling an "informal repository"
[11:23:49 CDT(-0500)] <thealphanerd> so colinclark this is one thing that I'm trying to wrap my head around. if I change the selectable items to no longer being the rect elementsโฆ will I need to make both the rect elements and the other selectable elements activatable?
[11:24:00 CDT(-0500)] <colinclark> And perhaps it's not
[11:24:02 CDT(-0500)] <thealphanerd> becuase as it is right now everything can be traversed via aria no problem
[11:24:21 CDT(-0500)] <colinclark> The selectable items needs to be the rect elements
[11:24:35 CDT(-0500)] <colinclark> what else could be selectable or activatable except the rects?
[11:24:39 CDT(-0500)] <colinclark> since they are the keys
[11:24:55 CDT(-0500)] <thealphanerd> well I thought you were implying to use another element to force the order
[11:25:01 CDT(-0500)] * thealphanerd is confused now
[11:25:21 CDT(-0500)] <colinclark> No, I'm saying make yourself an array that contains your selectable items-the rects-in a sorted order
[11:25:39 CDT(-0500)] <thealphanerd> ohhhh in javascript land
[11:25:48 CDT(-0500)] <colinclark> unfortunately in that land, yes
[11:26:00 CDT(-0500)] <thealphanerd> why is that unfortunate?
[11:26:17 CDT(-0500)] <colinclark>
[11:26:25 CDT(-0500)] <colinclark> well, it'd be nicer to do it in configuration
[11:26:28 CDT(-0500)] <colinclark> or not have to do them
[11:27:01 CDT(-0500)] <thealphanerd> indeed it would
[11:27:27 CDT(-0500)] <thealphanerd> I did do a read yesterday that made me want to refactor all my rendering
[11:27:51 CDT(-0500)] <thealphanerd> http://bost.ocks.org/mike/join/
[11:28:12 CDT(-0500)] <thealphanerd> had no idea you could do these "data joins" with d3
[11:29:24 CDT(-0500)] <colinclark> So, Justin_o, maybe it's best to treat the Builder like it's a formal repo--a formal part of Infusion
[11:29:32 CDT(-0500)] <thealphanerd> d3 can run constantly rendering based on a data setโฆ
[11:29:51 CDT(-0500)] <Justin_o> colinclark: okay.. makes sense
[11:29:52 CDT(-0500)] <colinclark> Justin_o: in which case, can you look at and push my pull request based on cindyli1's expert comments?
[11:30:17 CDT(-0500)] <Justin_o> colinclark: sure.. will do
[11:39:52 CDT(-0500)] <anastasiac> michelled, one down: https://github.com/acheetham/OER-Commons/tree/708
[11:44:25 CDT(-0500)] <Justin_o> colinclark: I commented on the pull request, maybe it's time to switch the builder to use a built version of infusion for it's own dependencies.
[11:53:26 CDT(-0500)] <colinclark> Justin_o: Yes
[11:53:30 CDT(-0500)] <colinclark> It's also time to retire the Builder
[11:53:51 CDT(-0500)] <Justin_o> colinclark: not arguing with that
[11:56:21 CDT(-0500)] <colinclark> Justin_o: I filed a JIRA for your comment http://issues.fluidproject.org/browse/FLUID-4757
[11:58:17 CDT(-0500)] <thealphanerd> so colinclark I have an array holding the jqueryies for each note in the order they should be selected
[11:58:41 CDT(-0500)] <Justin_o> colinclark: thanks
[11:58:44 CDT(-0500)] <colinclark> thealphanerd: ok
[11:58:53 CDT(-0500)] <thealphanerd> now how do I pass that to selectable
[11:59:12 CDT(-0500)] <thealphanerd> it says a set of nodesโฆ is that different than an array?
[11:59:26 CDT(-0500)] <thealphanerd> fr selectableElementโฆ I guess it is expecting a jquery
[11:59:30 CDT(-0500)] <colinclark> According to the documentation, selectableElements requires a jQuery
[11:59:33 CDT(-0500)] <colinclark> I don't know if it's true or not
[11:59:44 CDT(-0500)] <thealphanerd> I tried to give it an array of jqueries
[11:59:45 CDT(-0500)] <colinclark> But, assuming you've got this
[11:59:45 CDT(-0500)] <alexn> michelled: I created those Assembla tickets you asked me for. these are ISKME tickets 710-714
[11:59:50 CDT(-0500)] <thealphanerd> and the result was an error thrown
[11:59:55 CDT(-0500)] <colinclark> var sortedArray;
[12:00:01 CDT(-0500)] <thealphanerd> sayning the array doesn't have the method .fluid
[12:00:04 CDT(-0500)] <colinclark> $(sortedArray) should wrap it for you
[12:00:29 CDT(-0500)] <colinclark> and then you'll pass that as the value to your selectableElements option
[12:02:47 CDT(-0500)] <thealphanerd> no dice
[12:02:51 CDT(-0500)] <thealphanerd> doesn't throw an error
[12:02:56 CDT(-0500)] <thealphanerd> but doesn't make elements selectable
[12:03:19 CDT(-0500)] <thealphanerd> should I call fluid.each on the array, and make each element selectable individually?
[12:03:39 CDT(-0500)] <colinclark> no
[12:07:25 CDT(-0500)] <colinclark> thealphanerd: What is the value of "note" in your call to fluid.each inside that.noteArray?
[12:07:45 CDT(-0500)] <thealphanerd> note is an array [noteNumber, noteName]
[12:08:00 CDT(-0500)] <thealphanerd> aka [60, c4]
[12:08:28 CDT(-0500)] <colinclark> I guess it's a completely related question why these are stored as a tuple instead of in an object
[12:08:58 CDT(-0500)]
<colinclark> such as
[12:09:23 CDT(-0500)] <thealphanerd> this is what is used to populate list that gives the aria names
[12:09:40 CDT(-0500)] <colinclark> So what does this do, in the end? Is nothing selectable, or are they just selectable in the wrong order?
[12:09:47 CDT(-0500)] <thealphanerd> not selectable
[12:09:55 CDT(-0500)] <colinclark> when you get a chance, you should probably fix that, along with not storing DOM Elements in the model
[12:10:00 CDT(-0500)] <colinclark> ok
[12:10:18 CDT(-0500)] <colinclark> so, for better style, let's refactor this a bit
[12:10:22 CDT(-0500)] <colinclark> use fluid.transform()
[12:10:22 CDT(-0500)] <thealphanerd> where should I store the dom elements then?
[12:10:31 CDT(-0500)] <colinclark> thealphanerd: Somewhere other than in the model
[12:10:42 CDT(-0500)] <thealphanerd> ok
[12:10:49 CDT(-0500)] <thealphanerd> so it could just be like that.domNotes
[12:10:50 CDT(-0500)] <thealphanerd> ?
[12:10:55 CDT(-0500)] <colinclark> yes
[12:10:57 CDT(-0500)] <colinclark> something like that
[12:11:27 CDT(-0500)] <thealphanerd> ok that's done
[12:11:31 CDT(-0500)] <colinclark> When you're transforming one array structure into another, you should use fluid.transform(). I'll paste you an example
[12:11:53 CDT(-0500)] <anastasiac> michelled, another one down: https://github.com/acheetham/OER-Commons/tree/706
[12:12:04 CDT(-0500)] <michelled> thx anastasiac!
[12:13:00 CDT(-0500)] <Justin_o> colinclark, cindyli1: I pushed the builder changes up
[12:13:22 CDT(-0500)] <thealphanerd> oh waitโฆ colinclark, I just remembered why I have it as an array and not an object
[12:13:56 CDT(-0500)] <thealphanerd> http://pastebin.com/KMYWQzmj
[12:15:38 CDT(-0500)] <colinclark> thealphanerd: Can you elaborate?
[12:15:50 CDT(-0500)] <colinclark> Here's a suggested improvement to your code: http://pastebin.com/nBDsXJgv
[12:16:00 CDT(-0500)] <colinclark> There are a few key things to note:
[12:16:18 CDT(-0500)] <colinclark> 1. I broke out this code into a separate, free function and gave it a name that describes what it actually does.
[12:16:43 CDT(-0500)] <colinclark> 2. I use fluid.transform() to transform your notes model into an array of DOM elements
[12:17:16 CDT(-0500)] <colinclark> 3. As a guess, I'm unwrapping the elements before placing them in this new array
[12:17:28 CDT(-0500)] <anastasiac> michelled, hold off on 706: doesn't work in IE8
[12:17:35 CDT(-0500)] <colinclark> you'll need to wrap the whole array up again as a jQuery, which I didn't do
[12:18:53 CDT(-0500)] <thealphanerd> colinclark: should that be a free function when I implement it?
[12:19:11 CDT(-0500)] <colinclark> Yes
[12:19:30 CDT(-0500)] <colinclark> You should start to get into the discipline of creating more free functions, rather than methods that just randomly do stuff with "that"
[12:19:31 CDT(-0500)] <thealphanerd> and where would I decalre the free function?
[12:19:40 CDT(-0500)] <colinclark> wherever you like
[12:19:59 CDT(-0500)] <colinclark> If it's a function that's specific to a particular thing--like say the instrument, you might define it near the bottom of your instrument.js file
[12:20:10 CDT(-0500)] <thealphanerd> ok ok ok
[12:20:13 CDT(-0500)] <colinclark> AMMM.instrument.blah = function () { };
[12:20:18 CDT(-0500)] <thealphanerd> this is all making sense
[12:20:28 CDT(-0500)] <thealphanerd> that way I can break out the stuff from grid / piano that are pretty uch identitcle
[12:20:31 CDT(-0500)] <colinclark>
[12:20:37 CDT(-0500)] <colinclark> yes
[12:20:38 CDT(-0500)] <thealphanerd> such as drawing the svg element
[12:20:42 CDT(-0500)] <thealphanerd> send it a container / model
[12:20:45 CDT(-0500)] <thealphanerd> and do it from there
[12:20:51 CDT(-0500)] <colinclark> yes!
[12:21:01 CDT(-0500)] <colinclark> no more cut and paste!
[12:21:03 CDT(-0500)] <thealphanerd> that makes a lot of sense
[12:21:07 CDT(-0500)] <anastasiac> michelled, 706 is fine, it was just a cache issue
[12:21:07 CDT(-0500)] <colinclark> cool
[12:21:47 CDT(-0500)] <thealphanerd> so I guess the internal methods of a component should really only exist if it is very very very specific to that component
[12:21:51 CDT(-0500)] <thealphanerd> such as pre / post init
[12:22:36 CDT(-0500)] <colinclark> michelled: I guess the fascinating aspect of exploring our Captionator fork isn't so much the code we commented out
[12:22:42 CDT(-0500)] <colinclark> as the non-standard functionality we added
[12:25:28 CDT(-0500)] <colinclark> thealphanerd: I think it's less about specificity to the component...
[12:25:34 CDT(-0500)] <colinclark> and more about usefulness to users
[12:25:46 CDT(-0500)] <thealphanerd> ahhh
[12:25:55 CDT(-0500)] <colinclark> in other words, does it present an "interface" for people to use and control the component with?
[12:25:57 CDT(-0500)] <thealphanerd> functions that they may want to use outside the scope of its original intent
[12:26:19 CDT(-0500)] <colinclark> There's no reason, in fact, that methods on a component can't be defined by using other free functions
[12:26:21 CDT(-0500)] <colinclark> that's often the case
[12:26:31 CDT(-0500)] <colinclark> so really, methods are there to provide means of controlling a particular instance
[12:26:42 CDT(-0500)] <colinclark> but they should be composed of simpler, smaller free functions
[12:26:49 CDT(-0500)] <colinclark> which can be reused in many contexts
[12:28:24 CDT(-0500)] <thealphanerd> that makes sense
[12:28:34 CDT(-0500)] <thealphanerd> I will need to take some time to figure out when it makes sense to do so
[12:29:07 CDT(-0500)] <thealphanerd> btw I refactoredโฆ so instrument.aria.model.renderedNotes is now an array of objects
[12:33:30 CDT(-0500)] <colinclark> nice
[12:35:07 CDT(-0500)] <thealphanerd> colinclark: success!!!!
[12:35:42 CDT(-0500)] <thealphanerd> http://pastebin.com/fdrvF8u6
[12:36:25 CDT(-0500)] <colinclark> great, thealphanerd!
[12:36:39 CDT(-0500)] <thealphanerd> althoughโฆ it is selecting in the correct order for fluidโฆ but it is still not selecting in the correct order with voice over
[12:38:46 CDT(-0500)] <colinclark> what does VoiceOver do?
[12:42:43 CDT(-0500)] <thealphanerd> voiceOver is the built in osx screen reader
[12:56:40 CDT(-0500)] <colinclark> thealphanerd: umm
[12:56:43 CDT(-0500)] <colinclark> thanks
[12:56:56 CDT(-0500)] <colinclark> now that you've schooled me in assistive technologyโฆ
[12:57:08 CDT(-0500)] <colinclark> What does VoiceOver do on your page, specifically?
[12:57:09 CDT(-0500)] <thealphanerd> lol
[12:57:17 CDT(-0500)] <thealphanerd> well if I use voice over
[12:57:27 CDT(-0500)] <thealphanerd> I can find the piano as an application via landmarks
[12:57:33 CDT(-0500)] <thealphanerd> it is also the first item selected
[12:57:58 CDT(-0500)] <thealphanerd> I can then go into it via ctl + opt + shift + down
[12:58:17 CDT(-0500)] <thealphanerd> then can go through the notes with ctl + opt + right / left
[12:58:23 CDT(-0500)] <thealphanerd> it will name the notes as I go through
[12:58:33 CDT(-0500)] <thealphanerd> but it will do the white notes first, then the black notes (order in dom)
[12:58:52 CDT(-0500)] <colinclark> yeah, you're navigating the elements by hand in DOM order
[12:59:04 CDT(-0500)] <colinclark> It's been so long since I've used VoiceOver for this kind of thing
[12:59:22 CDT(-0500)] <colinclark> but typically, when you get focus inside an element with a role of application, it will free up the arrow keys
[12:59:29 CDT(-0500)] <colinclark> at which point you can navigate directly using right and left
[12:59:39 CDT(-0500)] <colinclark> and that will be controlled by JavaScript, and thus not in DOM order
[13:00:05 CDT(-0500)] <thealphanerd> the only issue
[13:00:16 CDT(-0500)] <thealphanerd> is that navigated using left and right is not recognized by voiceover
[13:00:25 CDT(-0500)] <colinclark> it should be
[13:00:41 CDT(-0500)] <thealphanerd> so the select event is firing
[13:00:46 CDT(-0500)] <thealphanerd> but the elements are not selected
[13:00:56 CDT(-0500)] <colinclark> right
[13:01:02 CDT(-0500)] <colinclark> They shouldn't be directly selectable in this way
[13:01:12 CDT(-0500)] <colinclark> they're automatically taken out of the tab order
[13:02:02 CDT(-0500)] <thealphanerd> but voiceover doesn't recognize the left and right movement unless you use the voice Over specific Dom traversal
[13:02:08 CDT(-0500)] <thealphanerd> I have to run for 30 minutes or so
[13:02:11 CDT(-0500)] <thealphanerd> will you still be around?
[13:02:47 CDT(-0500)] <thealphanerd> you can see the latest code on github right now
[13:02:49 CDT(-0500)] <thealphanerd> see ya in a bit
[13:03:10 CDT(-0500)] <colinclark> I'll be around
[13:03:20 CDT(-0500)] <thealphanerd> using voice over does properly select each svg element though
[13:03:28 CDT(-0500)] <thealphanerd> I'd like moving left and right to emulate that functionality
[13:03:41 CDT(-0500)] <logiclord_> yura1: Hi
[13:04:06 CDT(-0500)] <yura1> logiclord_: hi
[13:05:46 CDT(-0500)] <logiclord_> yura1: I was trying asynctest http://pastebin.com/q4u4wwie
[13:05:58 CDT(-0500)] <logiclord_> but test seems to go on for ever
[13:07:56 CDT(-0500)] <yura> oh ya logiclord_ you dont need to call stop when using asyncTest
[13:08:35 CDT(-0500)] <yura> logiclord_: also your tests should be inside the listener too, otherwise they will run like before with tests runnning before your component is even initalized
[13:14:31 CDT(-0500)] <yura> perhaps something like this http://pastebin.com/cUJuWfwu , logiclord
[13:16:07 CDT(-0500)] <logiclord> yes it worked for individual test but i have used epubReader in some tests like epubReader.locate('bookContainer').fluid('activate');
[13:16:17 CDT(-0500)] <logiclord> how should I wait for that
[13:16:18 CDT(-0500)] <logiclord> ?
[13:20:11 CDT(-0500)] <logiclord_> yura: for cases like http://pastebin.com/pWVHCztH
[13:23:16 CDT(-0500)] <yura> so logiclord_ you need to only call start at the very last point in time when you are ok with jqunit to continue with the rest of the tests
[13:23:26 CDT(-0500)] <yura> calling assert after start will get you in trouble
[13:25:02 CDT(-0500)] <yura> logiclord_: so something like this http://pastebin.com/aveLsYsW
[13:25:51 CDT(-0500)] <logiclord_> yura: It worked
[13:26:09 CDT(-0500)] <yura> logiclord_: awesome
[13:26:33 CDT(-0500)] <logiclord_> yura: I was also not able to simulate UI option change via jquery
[13:26:54 CDT(-0500)] <logiclord_> I tried to debug in console live
[13:27:09 CDT(-0500)] <logiclord_> like fire jquery operations to change values of drop etc
[13:27:14 CDT(-0500)] <logiclord_> and click save but
[13:27:22 CDT(-0500)] <logiclord_> everything just gets reset
[13:28:15 CDT(-0500)] <yura> logiclord_: was that for your new tabs of UI Options or the ones that already existed ?
[13:28:29 CDT(-0500)] <logiclord_> for both
[13:28:35 CDT(-0500)] <logiclord_> yura: ^
[13:29:30 CDT(-0500)] <logiclord_> yura: If i manually change input value and simulate save by click event it works but not vice versa
[13:30:09 CDT(-0500)] <yura> logiclord_: do you have it in code somewhere maybe i could take a look ?
[13:31:05 CDT(-0500)] <logiclord_> yura: last test case http://pastebin.com/E5XnWN8f
[13:31:21 CDT(-0500)] <yura> logiclord_: oh try this:
[13:31:40 CDT(-0500)] <yura> wherever you have .val(...)
[13:31:50 CDT(-0500)] <yura> replace it with .val(โฆ).change()
[13:32:01 CDT(-0500)] <logiclord_> it event based
[13:32:01 CDT(-0500)] <yura> i bet it will make you happy
[13:32:32 CDT(-0500)] <yura> so like this http://pastebin.com/BzyyyQdW
[13:33:12 CDT(-0500)] <yura> logiclord_: ^ basically, you need to call change event when you change a value on an input or select so it actually "register"