...
Description: Patron navigates to the catalog and views ebook or audiobooks using the context switchertabs.
Actor: Patron
Preconditions: Patron has selected a library that contains multiple catalog contexts (in this case, ebooks + audiobooks)logs in with an active library account
Postconditions: Filtered view displaysPostconditions: The chosen context displays the applicable catalog
Main Flow
Step | Actor | Action | Result | iOS Design (not final) | Android Design (not final) | Alternate Flow | Accessibility Notes | |
---|---|---|---|---|---|---|---|---|
1 | patron | User navigates to the Catalog tab, either from launching the app, or from another location / switching libraries / etc. | logs in and navigates to the library catalog |
|
|
| ||
2 | patron | 2 | patron | selects "audiobooksAudio" contexttab |
|
1b. Patron searches for an audio book in SimplyE
Description: Patron navigates to the catalog, switches to the audiobook context, and searches for an audiobook
Actor: Patron
Preconditions: Patron enters a title in the search field
Postconditions: Search results are displayed and can be filtered via facets
Main Flow
Step | Actor | Action | Result | iOS Design | Android Design | Accessibility |
---|---|---|---|---|---|---|
1 | patron | User navigates to the Catalog tab, either from launching the app, or from another location / switching libraries / etc. | (refer to 1a)
| (refer to 1a) | (refer to 1a) | |
2 | patron | selects the audiobooks context | (refer to 1a) | (refer to 1a) | (refer to 1a) | |
3 | patron | within the audiobooks context, clicks the 'search' field |
| n/a | n/a | |
4 | patron | makes an entry in the search field and clicks 'return' or 'search' |
| refer to existing android search and facet UI | ||
5 | patron | selecting the "All" context via the facet interface |
| refer to existing android search and facet UI |
When a user selects a new tab, the focus should stay on that tab (is screen reader user isn't bumped back to top of page) When a user selects a new tab, once the new books load that is announced to a user of a screen reader. Chat about best approach. |
Description: Patron borrows an audio book
Actor: Patron
Preconditions: Patron logs in with an active library account and navigates to an audio book they have not yet borrowed
Postconditions: Patron successfully borrows audio book
Main Flow
Step | Actor | Action | Result | iOS Design | Android Design | Alternate Flow | Accessibility |
---|---|---|---|---|---|---|---|
1 | patron | Browses or searches for an audio book | Audio books display in search results with:
| ||||
2 | patron | clicks 'Get' |
|
...
Description: Patron borrows an audiobook
Actor: Patron
Preconditions: Patron navigates to an audiobook they have not yet borrowed and chooses to borrow it
Postconditions: Patron successfully borrows audiobook
Main Flow
Step | Actor | Action | Result | iOS Design | Android Design | Alternate Flow | Accessibility | ||
---|---|---|---|---|---|---|---|---|---|
1 | patron | Browses or searches for an audiobook | Audiobooks display in search results with:
| n/a | n/a | ||||
2 | patron | clicks 'Get' |
(From a User perspective flow should be identical to borrowing ebooks.) n/a | n/a | |||||
3 | patron | views 'my books' page after borrowing an audio book | Borrowed audiobooks display:
| n/a | n/a |
| |||
If wifi drops, show inactive/loading version of the listen button. | There are issues in focus movement when user actives download. | Accessibility Tech Debt in current version of app: Download progress needs to be announced to users of screenreaders. Screenreader users need to be notified when Download is complete. Text display needs to include format. | |||||||
3 | patron | views 'my books' page after borrowing an audio book | Borrowed audiobooks display:
Question for UX: does this page display like the "All" tab with both ebooks and audiobooks shown and icons indicating content type? or is there a tabbed interface in my books? | Text display needs to include format. |
Description: Patron reserves an audio book
Actor: Patron
Preconditions: Patron logs in with an active library account and navigates to an audio book that is not available for borrowing, but is available to be reserved.
Postconditions: Patron successfully reserves audio book and views reservation in "Reservations"
Main Flow
Step | Actor | Action | Result | iOS Design | Android Design | Alternate Flow |
---|---|---|---|---|---|---|
1 | patron | views an audio book that is available to be reserved | Audio books displays with
| |||
2 | patron | clicks 'Reserve' | System reserves book System displays 'Remove' button | |||
3 | patron | views 'Reservations' page after reserving an audio book | Reserved audio books display:
|
3. Patron listens to an audio book in SimplyE
Description: Patron listens to the audio book they have borrowed
Actor: Patron
Preconditions: Patron has borrowed an audio book
Postconditions: audio book plays on patron's device
Description: Patron reserves an audio book
Actor: Patron
Preconditions: Patron logs in with an active library account and navigates to an audio book that is not available for borrowing, but is available to be reserved.
Postconditions: Patron successfully reserves audio book and views reservation in "Reservations"
Main Flow
Step | Actor | Action | Result | iOS Design | Android Design | Alternate Flow |
---|
System plays audio book
System displays:
- 'Pause' button replaces 'Play' button
- Scrubber bar moves as book plays
1 | patron |
System displays audio player with:
- Top or bottom nav with icons for: TOC, speed, sleep
- Title and cover image
- Scrubber bar showing progress through book
- Play button
Note: user must tap the play button to begin playing book. UX feedback is that the book should not begin playing automatically.
Might want to use the same styling for the progress bar for both e-books and audio books.
Audio cannot play automatically. Violated WCAG.
Users should be able to adjust volume of audiobook independent of system volume.
views an audio book that is available to be reserved | Audio books displays with
| |||||
2 | patron | clicks 'Reserve' | System reserves book System displays 'Remove' button | |||
3 | patron | views 'Reservations' page after reserving an audio book | Reserved audio books display:
|
3. Patron listens to an audio book in SimplyE
Description: Patron listens to the audio book they have borrowed
Actor: Patron
Preconditions: Patron has borrowed an audio book
Postconditions: audio book plays on patron's device
Main Flow
Step | Actor | Action | Result | iOS Design | Android Design | Alternate Flow | Accessibility | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | patron | drags scrubber bar | The audio plays accordingly and the playhead displays the location appropriately | Functionality needs to work for screenreader with feedback on where user is. If moving the scrubber causes audiobook to read very quickly at corresponding place in audio, that may present conflict with screenreader so need to discuss. | 4 | patron | taps 'pauseListen' | System stops playing audiobookdisplays audio player with:
Note: user must tap the play button to begin playing book. UX feedback is that the book should not begin playing automatically. Might want to use the same styling for the progress bar for both e-books and audio books. | Need to discuss this interaction with scrubber bar. | ||||||
5 | patron | navigates away from the player | when patron gets a phone call, or starts using another app, behavior should be as it is for any app, but need to describe it here. When audio is playing and user navigates away from the player to another page within the app, a mini player can be shown so that user can continue listening while browsing another content. (UI TBD) |
| |||||||||||
skips forward or backward | Question: A skip feature is described in the acceptance criteria, but is not shown in the designs. Is this a feature that we will offer? | ??? |
Audio cannot play automatically. Violated WCAG. Users should be able to adjust volume of audiobook independent of system volume. | |||||||
2 | patron | taps 'Play' button | System plays audio book System displays:
| ||||
3 | patron | drags scrubber bar | The audio plays accordingly and the playhead displays the location appropriately | Functionality needs to work for screenreader with feedback on where user is. If moving the scrubber causes audiobook to read very quickly at corresponding place in audio, that may present conflict with screenreader so need to discuss. | |||
4 | patron | taps 'pause' |
| Need to discuss this interaction with scrubber bar. | |||
5 | patron | navigates away from the player | when patron gets a phone call, or starts using another app, behavior should be as it is for any app, but need to describe it here. When audio is playing and user navigates away from the player to another page within the app, a mini player can be shown so that user can continue listening while browsing another content. (UI TBD) |
| |||
skips forward or backward | Question: A skip feature is described in the acceptance criteria, but is not shown in the designs. Is this a feature that we will offer? | ??? |
4. Patron adjusts settings on audio books in SimplyE
Description: Patron adjusts the settings on an audio book
Actor: Patron
Preconditions: Patron has borrowed an audio book
Postconditions: Settings for speed, sleep, device are adjusted
Main Flow
*These are placeholder designs. The player functionality in the app will determine UI.
Step | Actor | Action | Result | iOS Design | Android Design | Alternate Flow | Accessibility |
---|---|---|---|---|---|---|---|
2 | patron | taps 'Listen' for an audio book they have borrowed | System displays audio player with:
| Is the cover image being used to convey the author info? This should be conveyed as alt but presents an issue for patrons with low vision and/or color blindness. | |||
3 | patron | taps speed setting icon | System displays:
Note: UI will be as per iOS and Android players | The placeholder mockup is depending on context of the list items and color to communicate which menu this is. I would prefer if the sleep icon was not shown, to reduce possible confusion. What is this going to be like for a screen reader? What's the order of the page? | |||
4 | patron | selects different speed setting |
| ||||
5 | patron | taps Table of Contents icon | System displays:
Note: Chapters still downloading can't be selected
| How is this announced to screen readers, all apiece? Ie "Forward 24 minutes 12 seconds" The indication of the current chapter needs to be communicated to screen readers. The downloading icons/whatever that grey circle is both need to have alts for screenreaders. | |||
6 | patron | selects a different chapter/track from the TOC menu |
Question: should the chapter begin playing as soon as it is selected or does the listener have to click the "play" button? | Audio should not play automatically. | |||
7 | patron | taps 'Sleep' icon | System displays:
Note: UI will be as per iOS and Android players Out of scope for initial release: Would be nice to be able to turn off the timer if user changes their mind (or can't go to sleep and wants to listen longer) Out of scope for initial release: Would be nice to display the sleep timer on the UI when it is active. | Current setting needs to be indicated to screen reader. See notes in speed menu section about styling. | |||
8 | patron | selects different sleep |
Description: Patron adjusts the settings on an audio book
Actor: Patron
Preconditions: Patron has borrowed an audio book
Postconditions: Settings for speed, sleep, device are adjusted
Main Flow
*These are placeholder designs. The player functionality in the app will determine UI.
Step | Actor | Action | Result | iOS Design | Android Design | Alternate Flow | Accessibility |
---|---|---|---|---|---|---|---|
2 | patron | taps 'Listen' for an audio book they have borrowed | System displays audio player with:
| Is the cover image being used to convey the author info? This should be conveyed as alt but presents an issue for patrons with low vision and/or color blindness. | |||
3 | patron | taps speed setting icon | System displays:
Note: UI will be as per iOS and Android players | The placeholder mockup is depending on context of the list items and color to communicate which menu this is. I would prefer if the sleep icon was not shown, to reduce possible confusion. What is this going to be like for a screen reader? What's the order of the page? | |||
4 | patron | selects different speed setting |
| ||||
59 | patron | taps Table of Contents icon | System displays:
Note: Chapters still downloading can't be selected
| How is this announced to screen readers, all apiece? Ie "Forward 24 minutes 12 seconds" The indication of the current chapter needs to be communicated to screen readers. The downloading icons/whatever that grey circle is both need to have alts for screenreaders. | |||
6 | patron | selects a different chapter/track from the TOC menu |
Question: should the chapter begin playing as soon as it is selected or does the listener have to click the "play" button? | Audio should not play automatically. | |||
7 | patron | taps 'Sleep' icon | System displays:
Note: UI will be as per iOS and Android players Out of scope for initial release: Would be nice to be able to turn off the timer if user changes their mind (or can't go to sleep and wants to listen longer) Out of scope for initial release: Would be nice to display the sleep timer on the UI when it is active. | Current setting needs to be indicated to screen reader. See notes in speed menu section about styling. | |||
8 | patron | selects different sleep setting |
| ||||
listens until sleep timer goes off |
|
| There are a couple accessibility threads we need to confirm for this. |
Open Questions
Question | Related to | Asked by | Responses | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | If the user opens an audio book player, opens the table of contents, starts one or more parts downloading, closes the table of contents, closes the player... Are the parts still downloading? If the parts are downloading, this implies that there are one or more instances of the `AudioBookType` that is living somewhere globally in the app, independently of any particular activity, and that parts of the app can get references to them to control them. | Mark | Kim: Looking at how Overdrive/Libby does this. If I stop playing the book before it is downloaded I get a "download paused," message. Seems like we should do something similar. Here is a screenshot of how Libby displays a paused download. Will ask Jack to weigh in on this. Mark: It looks as though that screenshot is from something analogous to our "book detail view" in the SimplyE catalog section. If so, then that definitely does imply that `AudioBookType` instances exist outside of the player activity; if they didn't, then there'd be no way to display the current download status in the catalog. | |||||||||
2 | If book parts are allowed to continue downloading in the background, how is error reporting actually implemented? Do we just pop up a dialog box anywhere the user happens to be, whenever a book part publishes an error event? That's awkward to implement on Android. | Mark | ||||||||||
3 | How do we implement tabs in the catalog? Last time i looked, the catalog was activity based instead of fragment based... How does this work with tabs? | Use Case 1a & 1b | Mark | |||||||||
4 | The requirements talk about being able to "close" the player view and still have the book playing, possibly with a small player view that appears in the catalog. How can this be achieved? If the player instance (not the view) is instantiated in an activity (and the activity "owns" the player), then we lose the reference to that player instance when the activity is closed. References to players are not serializable and can't be passed between activities. | Mark | ||||||||||
5 | When the user borrows an audio book, it's necessary to fetch the book manifest so that an `AudioBookType` instance can be instantiated from it. When exactly is this manifest fetched? Manifests appear to be able to expire (Findaway books in particular have session IDs), so fetching them eagerly and saving them to disk might not be a good idea. Are manifests saved on disk? | Mark | 9 | patron | listens until sleep timer goes off |
|
| There are a couple accessibility threads we need to confirm for this. |
Out of Scope Items
- Supporting the web app is out of scope for the October release, but for a later release: need to implement an alternate flow for the web app. so that it displays a message to go to SimplyE to listen. This would be the same downloading most ebooks. Need a design, including accessibility requirements.
- After launching 3.0, test whether users expect to see last tab selected when they view catalog.
...