Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for StopInfo project to help blind riders to better locate bus stops #103

Closed
barbeau opened this issue Feb 10, 2014 · 21 comments

Comments

@barbeau
Copy link
Member

barbeau commented Feb 10, 2014

More info about the StopInfo project on OBA Dev list here.

PR that added this feature to OBA iPhone:
OneBusAway/onebusaway-iphone#245

To implement this, we'd need to:

  1. Consume StopInfo server url from Regions API
  2. Show info button on arrival info fragment, if the StopInfo url is not null for the current region
  3. Direct the user to the StopInfo server url when they tap on the info button

More details are in the above links.

@barbeau
Copy link
Member Author

barbeau commented Feb 10, 2014

In-app screenshot on iOS:

stopinfobutton

Screenshot of StopInfo web app on iOS:
ios simulator screen shot feb 7 2014 4 44 50 pm

@barbeau
Copy link
Member Author

barbeau commented Aug 19, 2014

News coverage (including YouTube video) of this project is here:
http://www.washington.edu/news/2014/08/18/stopinfo-for-onebusaway-app-makes-buses-more-usable-for-blind-riders/

@caitbonnar
Copy link

Thanks for opening this issue, @barbeau! It would be really awesome to see this integrated with Android soon -- we're getting a lot of requests from blind and low vision users and contributors alike.

@caitbonnar
Copy link

@barbeau Here are some implementation details from the iOS side! Let me know if you have other questions about how to get it set up in Android.

Most of the code, including the relevant links to StopInfo, are found in this block in OBAGenericStopViewController.m. The URL for regions that don't have StopInfo all go to http://stopinfo.pugetsound.onebusaway.org/testing -- which I just hard-coded into the app for now. As you can see in the code block, I append /busstops/agencyID_stopID onto the URL (I think in our code, stop.stopID includes the agencyID, but that might have to be changed for other regions, I'm not sure). I pass userid=OBA_ID as an argument for our logging purposes, but it isn't required. We also don't need the direction=stop.direction anymore, even though it is also attached to the URL as an argument. So an example URL for a bus stop would look like http://stopinfo.pugetsound.onebusaway.org/busstops/1_75403?userid=2381290 -- that's really about the gist of it. We tried to make everything navigable within StopInfo itself, but if the user plays around in there for awhile they will probably have to hit 'Back' a lot to get back to the app (we have it embedded app-side so we tried to do a bit of routing to work around that). If you have any ideas of how to better handle that, let me know. Also let me know if any of the formatting looks off.

The info button next to the stop name currently only shows up for stops in Puget Sound, but I also added a table cell under the stop arrival times that says 'About This Stop' that appears for all regions because I was worried the button would be missed. Analytics has shown this is clicked occasionally, but probably not often enough to support it. The info button is much more salient (although it could probably be bigger/bolder in the standard iOS design).

Lastly, I set a simple accessibility label: "About this Stop, button." and hint: "Double tap for stop landmark information." which are read by the screen reader.

Hopefully that covers most of it!

@barbeau
Copy link
Member Author

barbeau commented Sep 16, 2014

@caitbonnar Awesome, thanks! I think that should do it, but I'll ping you if I have any questions.

@caitbonnar
Copy link

@barbeau No problem! Thanks for getting this in there! :-)

barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Sep 17, 2014
* Still need to refine layout - stop info icon can be pushed off-screen if stop name is long
@barbeau
Copy link
Member Author

barbeau commented Sep 17, 2014

@caitbonnar I've got an initial working version of StopInfo for Android in this branch, if you're interested in building the project yourself:
https://github.com/CUTR-at-USF/onebusaway-android/tree/issue155-UIredesign

If not, I plan to post an APK before the end of this week. I'll ping you about that as well.

There are currently still a few known issues that I need to clean up (change color of icon to white, prevent icon from running off-screen with long stop names), but its definitely working :).

obastopinfoa

obastopinfob

@caitbonnar
Copy link

@barbeau, it looks awesome! Thank you so much for getting it in there, and I hope it was relatively simple to do.
I tracked down an Android device to test on, but I won't have access to it until next week. So I'll try to get the APK then. Is it available via TestFlight or some other beta distribution service?

@barbeau
Copy link
Member Author

barbeau commented Sep 17, 2014

@caitbonnar Thanks! Not bad, hardest part is getting Android layouts to do what you want - I'm still wrestling with the pushing of the icon off the screen. Hopefully I'll nail that down tomorrow.

RE: APK - I was just planning on putting a link to the APK on the UI re-design ticket (#155), or more likely opening a WIP PR and linking to the APK there (and referencing #155 from the PR), since its still an early alpha with lots of things missing before a final release. More of a work-in-progress. At any rate, I'll ping you with a URL you can download from just by tapping on link on your Android device. Just make sure you allow "Unknown sources" (or "Non-Google Play sources", or whatever Google is calling it now - see Step 1 here) before trying to install the APK from the web.

This process is probably worth a larger discussion, though, now that Google Play allows us to post Alphas as well as Betas. We're currently using the Beta channel as a pre-release channel for production-ready releases, but we've only really advertised this on the OBA dev list. As a result, according to the Android dev console, we've only got 7 beta users, which are probably all developers :).

@paulcwatts what would you think about possibly using the OneBusAway Google+ Group for a larger, better advertised Beta channel to a more casual user group? And, we could switch the onebusaway-developer group to an Alpha channel that would get early previews of new things like the UI re-design? This would allow us to get better feedback before a full production release via a larger Beta channel, and would open up Alphas for the developers, who are more likely interested in works-in-progress/bleeding edge stuff.

barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Sep 18, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Sep 18, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Sep 18, 2014
* Keeps info button from running offscreen with long stop names
* Format XML
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Sep 18, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Sep 18, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Sep 18, 2014
@caitbonnar
Copy link

Sounds good. Thanks, @barbeau!

@barbeau
Copy link
Member Author

barbeau commented Sep 19, 2014

Just opened a WIP PR here, complete with an APK download, if anyone wants to try out an initial implementation of this.

barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 12, 2014
* Still need to refine layout - stop info icon can be pushed off-screen if stop name is long
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 12, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 12, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 12, 2014
* Keeps info button from running offscreen with long stop names
* Format XML
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 12, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 12, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 12, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 14, 2014
* Still need to refine layout - stop info icon can be pushed off-screen if stop name is long
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 14, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 14, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 14, 2014
* Keeps info button from running offscreen with long stop names
* Format XML
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 14, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 14, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Nov 14, 2014
@barbeau barbeau added this to the Public v2.0.x release milestone Sep 24, 2015
@barbeau
Copy link
Member Author

barbeau commented Oct 1, 2015

It's been a while since I updated this issue - here's what the stop info icon currently looks like in the app:
image

@caitbonnar
Copy link

@barbeau Thanks for the update! It looks good -- but is it possible to make it a tad bigger? That's mostly for people with low vision who don't use TalkBack. Which brings up another point-- is the button accessible via TalkBack? If so, what does the label read? Is there a hint?

@barbeau
Copy link
Member Author

barbeau commented Oct 1, 2015

@caitbonnar Was just about to ping you with some questions re: this :). Yes, I can make the image itself bigger, although much larger it starts to really dominate the area. The touch area (see dark box surrounding icon below) is larger than the icon image, and I can potentially increase that more also:

image

Content description for Talkback is "About this stop".

Another option would be to move it (or supplement it) with an entry in the overflow menu that you get to by tapping on the three dots in the Action Bar:

image

... with a name like "Stop Info" or "Stop Details", again with Talkback description too. I was wondering if this fixed position in the overflow menu might actually be more accessible?

The issue with the info button in the header is that it moves around depending on the length of the stop name. But I figured you'd have the best idea of how either option would work for BLV users.

@caitbonnar
Copy link

@barbeau Thanks for being open to the feedback! :)
I'm not very familiar with TalkBack, but if it is anything like VoiceOver, there will be a way to navigate through UI elements without having to physically locate them on the screen (i.e. you can swipe right or left and the VO cursor will focus on elements deemed as accessibility elements in some fixed order -- in VO this is generally top left to bottom right of the screen in left-to-right languages). So it's okay that the stop name length is variable as long as that button is accessible.

That being said, I do like having it be a menu option (something I've pushed for in OBA iOS), because I believe fixed, ordered lists (as long as they're relatively short) are easy to traverse with a screenreader. But that's based on my intuition more than it is research.

I can ask some B/LV friends their opinion too, if you'd like!

@barbeau
Copy link
Member Author

barbeau commented Oct 2, 2015

@caitbonnar Ok, thanks. Yes, getting feedback from B/LV contacts would be great. It would also be great if any of them are willing to sign up for alpha updates, which includes the above stop info button:
https://github.com/OneBusAway/onebusaway-android/blob/master/BETA_TESTING.md#register-as-an-alpha-tester

I'd like to get their feedback not only on the stop info button, but the new UI in general. Lots of things have changed from the current public version, and if we broke anything that B/LV users depend on it would be good to know now rather than later.

On a related note - if we can get the stop_code added to the StopInfo page (see OneBusAway/onebusaway-stopinfo#1), then I'll likely show this info button and/or menu option in all regions. In regions with a StopInfo server, it will direct to the StopInfo page. In regions without a StopInfo Server, it will show a dialog with the stop details from GTFS, including stop_code - we've had ongoing requests to display the stop_code in some way so users know the number to report to the agency if there are problems (#171).

@caitbonnar
Copy link

@barbeau Great, I'll send a request out! I know of at least one blind OBA Android user who's been wanting to give accessibility feedback for awhile -- sounds like a good time to do that!

I'll ask @alanborning about possibly getting the stop code attached as well. Neither @meganca nor I are at UW anymore, so I'm not sure StopInfo is being maintained by anyone directly anymore. It might be a good time to make it open source as well (if it isn't already).

barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this issue Oct 28, 2015
...as requested in OneBusAway#103 (comment).

Also center the star (to the left of stop name) vertically in the layout.
barbeau added a commit that referenced this issue Oct 28, 2015
* Also includes routes and stop direction
* This could potentially be replaced by the Stop Info page for regions that provide Stop Info, if Stop Info adds the stop code, routes, and direction info.  See #103 (comment).
@barbeau
Copy link
Member Author

barbeau commented Oct 28, 2015

@caitbonnar Just curious - have you heard any feedback from B/LV users?

@caitbonnar
Copy link

@barbeau Not yet -- I sent an email out but I think they've been busy with the ASSETS conference in Portugal which was last week. I'll send out another note soon! Sorry about the delay. If it's holding you from releasing, I'd say to just include what you have now, it seems sound. :)

@alanb2718
Copy link

BTW @meganca did move the StopInfo code to to the OneBusAway project at https://github.com/OneBusAway/onebusaway-stopinfo

@barbeau
Copy link
Member Author

barbeau commented Oct 29, 2015

@caitbonnar No worries, thanks! And thanks @alanborning, I did see that @meganca pushed the StopInfo code.

The StopInfo button on arrivals header in OBA is currently available in the develop branch and currently alpha version on Google Play (for regions that have a StopInfo server, which is currently only Puget Sound), so I'm going to call this issue closed, unless something comes up that makes the current implementation unusable, at which point we can re-open.

FYI - I did add a fixed menu option for "Show Stop Details" (see 3d50265 and #171), but for now that just shows the stop name, routes served, and stop code (which was the main item we needed to made visible somewhere). After stop code is added to StopInfo page (see OneBusAway/onebusaway-stopinfo#1), we can look at making this fixed menu option direct to the StopInfo page as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants