Skip to content
Snippets Groups Projects
Commit b8b8d536 authored by Venkatesh Potluri's avatar Venkatesh Potluri
Browse files

made updates to include homeworks.

parent 7e48b295
No related branches found
No related tags found
6 merge requests!12Accessibility website jen summer work,!9Q access 24 sp,!8Q access 24 sp,!5Latest update from Spring 2023,!4Latest update after pmp class,!3Updated content for week 3 and week 4 (week 4 still needs work)
...@@ -25,9 +25,9 @@ deploy_production: ...@@ -25,9 +25,9 @@ deploy_production:
- bundle exec jekyll build -d public - bundle exec jekyll build -d public
- /www/utils/deploycourseweb.sh - /www/utils/deploycourseweb.sh
variables: variables:
quarter: eg21wi quarter: 21sp
course: egcse340 course: ecsep590a
source_path: public source_path: public
only: only:
refs: refs:
- egCSE340-WI21 - CSEP590A-SP21
...@@ -8,12 +8,17 @@ PATH ...@@ -8,12 +8,17 @@ PATH
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
activesupport (5.2.4.5)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
addressable (2.7.0) addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0) public_suffix (>= 2.0.2, < 5.0)
ast (2.4.0) ast (2.4.2)
colorator (1.1.0) colorator (1.1.0)
concurrent-ruby (1.1.6) concurrent-ruby (1.1.8)
em-websocket (0.5.1) em-websocket (0.5.2)
eventmachine (>= 0.12.9) eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0) http_parser.rb (~> 0.6.0)
ethon (0.12.0) ethon (0.12.0)
...@@ -22,13 +27,13 @@ GEM ...@@ -22,13 +27,13 @@ GEM
execjs (2.7.0) execjs (2.7.0)
extras (0.3.0) extras (0.3.0)
forwardable-extended (~> 2.5) forwardable-extended (~> 2.5)
fastimage (2.1.7) fastimage (2.2.2)
ffi (1.12.2) ffi (1.14.2)
font-awesome-sass (5.12.0) font-awesome-sass (5.15.1)
sassc (>= 1.11) sassc (>= 1.11)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
hpricot (0.8.6) hpricot (0.8.6)
html-proofer (3.15.1) html-proofer (3.18.5)
addressable (~> 2.3) addressable (~> 2.3)
mercenary (~> 0.3) mercenary (~> 0.3)
nokogumbo (~> 2.0) nokogumbo (~> 2.0)
...@@ -39,31 +44,33 @@ GEM ...@@ -39,31 +44,33 @@ GEM
http_parser.rb (0.6.0) http_parser.rb (0.6.0)
i18n (0.9.5) i18n (0.9.5)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jaro_winkler (1.5.4) jekyll (3.9.0)
jekyll (3.7.4)
addressable (~> 2.4) addressable (~> 2.4)
colorator (~> 1.0) colorator (~> 1.0)
em-websocket (~> 0.5) em-websocket (~> 0.5)
i18n (~> 0.7) i18n (~> 0.7)
jekyll-sass-converter (~> 1.0) jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0) jekyll-watch (~> 2.0)
kramdown (~> 1.14) kramdown (>= 1.17, < 3)
liquid (~> 4.0) liquid (~> 4.0)
mercenary (~> 0.3.3) mercenary (~> 0.3.3)
pathutil (~> 0.9) pathutil (~> 0.9)
rouge (>= 1.7, < 4) rouge (>= 1.7, < 4)
safe_yaml (~> 1.0) safe_yaml (~> 1.0)
jekyll-assets (2.4.0) jekyll-assets (3.0.12)
concurrent-ruby (~> 1.0) activesupport (~> 5.0)
execjs (~> 2.7)
extras (~> 0.2) extras (~> 0.2)
fastimage (~> 2.0, >= 1.8) fastimage (~> 2.0, >= 1.8)
jekyll (~> 3.1, >= 3.0) jekyll (>= 3.5, < 4.0)
pathutil (>= 0.8) jekyll-sanity (~> 1.2)
rack (~> 1.6) liquid-tag-parser (~> 1.0)
sprockets (~> 3.3, < 3.8) nokogiri (~> 1.8)
pathutil (~> 0.16)
sprockets (>= 3.3, < 4.1.beta)
jekyll-contentblocks (1.2.0) jekyll-contentblocks (1.2.0)
jekyll jekyll
jekyll-feed (0.13.0) jekyll-feed (0.15.1)
jekyll (>= 3.7, < 5.0) jekyll (>= 3.7, < 5.0)
jekyll-font-awesome-sass (0.1.1) jekyll-font-awesome-sass (0.1.1)
font-awesome-sass (>= 4) font-awesome-sass (>= 4)
...@@ -72,60 +79,76 @@ GEM ...@@ -72,60 +79,76 @@ GEM
jekyll-paginate (1.1.0) jekyll-paginate (1.1.0)
jekyll-redirect-from (0.16.0) jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0) jekyll (>= 3.3, < 5.0)
jekyll-sanity (1.6.0)
jekyll (>= 3.1, < 5.0)
pathutil (~> 0.16)
jekyll-sass-converter (1.5.2) jekyll-sass-converter (1.5.2)
sass (~> 3.4) sass (~> 3.4)
jekyll-seo-tag (2.6.1) jekyll-seo-tag (2.7.1)
jekyll (>= 3.3, < 5.0) jekyll (>= 3.8, < 5.0)
jekyll-target-blank (2.0.0) jekyll-target-blank (2.0.0)
jekyll (>= 3.0, < 5.0) jekyll (>= 3.0, < 5.0)
nokogiri (~> 1.10) nokogiri (~> 1.10)
jekyll-watch (2.2.1) jekyll-watch (2.2.1)
listen (~> 3.0) listen (~> 3.0)
json (2.3.0) json (2.5.1)
kramdown (1.17.0) kramdown (2.3.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
libv8 (3.16.14.19) libv8 (3.16.14.19)
liquid (4.0.3) liquid (4.0.3)
listen (3.2.1) liquid-tag-parser (1.9.0)
extras (~> 0.3)
liquid (>= 3.0, < 5.0)
listen (3.4.1)
rb-fsevent (~> 0.10, >= 0.10.3) rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10) rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6) mercenary (0.3.6)
mini_portile2 (2.4.0) mini_portile2 (2.5.0)
nokogiri (1.10.8) minitest (5.14.3)
mini_portile2 (~> 2.4.0) nokogiri (1.11.1)
nokogumbo (2.0.2) mini_portile2 (~> 2.5.0)
racc (~> 1.4)
nokogumbo (2.0.4)
nokogiri (~> 1.8, >= 1.8.4) nokogiri (~> 1.8, >= 1.8.4)
parallel (1.19.1) parallel (1.20.1)
parser (2.7.0.2) parser (3.0.0.0)
ast (~> 2.4.0) ast (~> 2.4.1)
pathutil (0.16.2) pathutil (0.16.2)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
public_suffix (4.0.3) public_suffix (4.0.6)
rack (1.6.10) racc (1.5.2)
rack (2.2.3)
rainbow (3.0.0) rainbow (3.0.0)
rb-fsevent (0.10.3) rb-fsevent (0.10.4)
rb-inotify (0.10.1) rb-inotify (0.10.1)
ffi (~> 1.0) ffi (~> 1.0)
ref (2.0.0) ref (2.0.0)
regexp_parser (2.0.3)
remark (0.3.2) remark (0.3.2)
hpricot (~> 0.8.2) hpricot (~> 0.8.2)
rexml (3.2.4) rexml (3.2.4)
rouge (3.16.0) rouge (3.26.0)
rubocop (0.80.0) rubocop (0.93.1)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 2.7.0.1) parser (>= 2.7.1.5)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8)
rexml rexml
rubocop-ast (>= 0.6.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 1.7) unicode-display_width (>= 1.4.0, < 2.0)
ruby-progressbar (1.10.1) rubocop-ast (1.4.1)
parser (>= 2.7.1.5)
ruby-progressbar (1.11.0)
safe_yaml (1.0.5) safe_yaml (1.0.5)
sass (3.7.4) sass (3.7.4)
sass-listen (~> 4.0.0) sass-listen (~> 4.0.0)
sass-listen (4.0.0) sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4) rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7) rb-inotify (~> 0.9, >= 0.9.7)
sassc (2.2.1) sassc (2.4.0)
ffi (~> 1.9) ffi (~> 1.9)
sprockets (3.7.2) sprockets (3.7.2)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
...@@ -133,14 +156,18 @@ GEM ...@@ -133,14 +156,18 @@ GEM
therubyracer (0.12.3) therubyracer (0.12.3)
libv8 (~> 3.16.14.15) libv8 (~> 3.16.14.15)
ref ref
typhoeus (1.3.1) thread_safe (0.3.6)
typhoeus (1.4.0)
ethon (>= 0.9.0) ethon (>= 0.9.0)
tzinfo (1.2.9)
thread_safe (~> 0.1)
uglifier (4.2.0) uglifier (4.2.0)
execjs (>= 0.3.0, < 3) execjs (>= 0.3.0, < 3)
unicode-display_width (1.6.1) unicode-display_width (1.7.0)
w3c_validators (1.3.4) w3c_validators (1.3.6)
json (>= 1.8) json (>= 1.8)
nokogiri (~> 1.6) nokogiri (~> 1.6)
rexml (~> 3.2)
yell (2.2.2) yell (2.2.2)
PLATFORMS PLATFORMS
...@@ -149,8 +176,8 @@ PLATFORMS ...@@ -149,8 +176,8 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
execjs execjs
html-proofer (~> 3.0) html-proofer (~> 3.0)
jekyll (= 3.7.4) jekyll (< 4.0)
jekyll-assets (= 2.4.0) jekyll-assets
jekyll-contentblocks jekyll-contentblocks
jekyll-feed jekyll-feed
jekyll-font-awesome-sass jekyll-font-awesome-sass
...@@ -160,8 +187,10 @@ DEPENDENCIES ...@@ -160,8 +187,10 @@ DEPENDENCIES
jekyll-seo-tag jekyll-seo-tag
jekyll-target-blank jekyll-target-blank
jekyll-theme-cayman! jekyll-theme-cayman!
kramdown-parser-gfm
remark remark
rubocop (~> 0.50) rubocop (~> 0.50)
sprockets (~> 3.7)
therubyracer therubyracer
tzinfo-data tzinfo-data
uglifier uglifier
......
...@@ -7,18 +7,18 @@ ...@@ -7,18 +7,18 @@
title: Name and number of your class title: Name and number of your class
description: Description of your class description: Description of your class
baseurl: "/courses/csexxx/xxqq" baseurl: "/courses/csep590a/21sp"
url: https://courses.cs.washington.edu # the base hostname & protocol for your site, e.g. http://example.com url: https://courses.cs.washington.edu # the base hostname & protocol for your site, e.g. http://example.com
twitter_username: username twitter_username: username
git_username: username git_username: username
git_url: https://gitlab.cs.washington.edu/jmankoff/class-website-core git_url: https://gitlab.cs.washington.edu/jmankoff/class-website-core
git_branch: CSExxx-xxQQ git_branch: CSEP590A-21SP
piazza: https://us.edstem.org/courses/xxx/discussion/ piazza: https://us.edstem.org/courses/xxx/discussion/
canvas: https://canvas.uw.edu/courses/xxxxx canvas: https://canvas.uw.edu/courses/xxxxx
gitlab: https://gitlab.cs.washington.edu/students-group-for-assignments gitlab: https://gitlab.cs.washington.edu/students-group-for-assignments
gitgrade: https://gitgrade.cs.washington.edu/student/summary/xxxx gitgrade: https://gitgrade.cs.washington.edu/student/summary/xxxx
paginate: 5 paginate: 5
quarter: "Quarter YYYY" quarter: "Spring 2021"
copydate: "3/30/20" copydate: "3/30/20"
status: draft status: draft
......
---
layout: assignment
published: true
title: Use 3D printing to make something accessible
code: ex3
assigned: Date
due:
- <strong>Due</strong> date
- <strong>Lock</strong> date
revised: date
objective: Learn about 3D printing and use it to make something accessible
---
The goal of this assignment is for you to develop basic familiarity with OpenSCAD. Your goal is to create a model of something that makes something more accessible for you or someone else. To keep this problem within reason for a first assignment, you should focus on things that are fairly simple to model. You should work in pairs on this assignment.
ething (such as a luggage tag), a guide (to make moving something along a path easier) or a lever (to make rotating something easier.
- Your solution should be correctly sized (i.e. try to measure the thing you are modifying and to make sure that your printed object is appropriately sized).
- You should use a simple method to attach things such as a zip-tie (simply requires small holes), or glue.
- Your object should be small (be printable in 20 minutes to 2 hours)
- You should create a Thingiverse “thing” which represents your object with a picture of your final object in use, your OpenSCAD file, and a picture of your model, along with a brief explanation of what problem it solves, how to correctly size it, how it attaches to or interacts with the real world. If you remixed something else on Thingiverse be sure to correctly attribute it (by creating a remix).
You should print your thing out to demo in class. Here is a page with [information about using the Ultimaker printers](https://make4all.org/portfolio/3d-printing-on-the-ultimaker/). This [slide deck about 3D printing](https://drive.google.com/a/cs.washington.edu/file/d/1LfYMSjDQLWe13n7VWjEdIJWdu8-Jifly/view?usp=sharing) also has lots of information.
# Resources
- [OpenSCAD beginner’s Tutorial](http://cleezyitp.github.io/screenReader3DModeling2019/)
- [OpenSCAD cheat sheet](http://www.openscad.org/cheatsheet/index.html)
- [Some useful OpenSCAD libraries](https://github.com/mtu-most/most-scad-libraries)
# Turnin
#Grading
The grading rubric for this assignment is as follows.
When points are 1 or 0, this is pass fail (no nuance).
When points are 0-3, use the following scale:
- 0 – Not done;
- 1 – Short shallow solution;
- 2 – Good solution;
- 3 – Outstanding solution.
| POINTS | DESCRIPTION | COMMENTS (BY GRADER) |
|--------|-----------------------------------------|----------------------|
| 0-3 | Create a 3D model that solves a problem | |
| 1 or 0 | Learn how to correctly size a model | |
| 1 or 0 | Apply an appropriate attachment method | |
| 1 or 0 | Learn the pipeline: Create a 3D printed object from your | |
| 0-3 | Describe how a model should be used | |
---
layout: assignment
published: true
title: Android Accessibility
code: as3
assigned: Date
due:
- <strong>Due</strong> date
- <strong>Lock</strong> date
revised: date
objective: Identify and repair android app accessibility issues.
android_goals:
- Basics of Android assistive tools
hci_goals:
- Explore App accessibility
- Understanding the impact of different accessibility issues
- Simple repairs to accessibility issues
- Write up a report on accessiblity issues
---
* TOC
{:toc}
# Overview
This assignment involves finding all the accessibility problems in the
code base for an application, and documenting and fixing them. It will
be important to iterate on this find/fix cycles as fixing one problem
may uncover new ones. You will use a number of tools to find these
issues, including but not limited to the Google Accessibility Scanner
and TalkBack. It will be important for you to experience the app
through the use of a screen reader to find all of the problems a user
might encounter.
# GitGrade links
**Classroom** [Summary](https://gitgrade.cs.washington.edu/student/summary/xxx)
**Links:** [Accept the Assignment](https://gitgrade.cs.washington.edu/student/assignment/xx) / [Turn-in the Assignment](https://gitgrade.cs.washington.edu/student/assignment/xxx/turnin)
# Description
Accessibility is an important part of any app. Whether you are developing a new app or adding features
to an existing one, it is important to consider the accessibility of your app's components.
Tasks:
- Learn different categories of app accessibility issues
- Identify accessibility issues in our example app
- Write a detailed report as a communication tool to developers who need to make the app accessible
For some background you will want to do the following:
- Start by watching this [quick video](https://youtu.be/1by5J7c5Vz4) to learn how visually-impaired
users interact with Android applications. The video also offers some tips on ensuring your app is
compatible with assistive tools.
- Next read the list of errors that are found by Google's accessibility Scanner which is
show in Table 2 on the 8th page of the PDF (which is numbered page 9) of
[Epidemiology as a Framework for Large-Scale Mobile Application Accessibility Assessment](https://xiaoyizhang.me/assets/Paper/ASSETS_2017_Epidemiology.pdf).
- Finally, because it is important to write succinct and yet descriptive alt text (content descriptions), you
should read about [proper alt text writing](https://webaim.org/techniques/alttext/).
For example, consider this view of the Layout Inspector of the layout app that we recently completed.
(You will not be using your layout code for this assignment, we are using it for illustrative
purposes here.) The selected image in the upper left of the screen does not have
`contentDescription` property. **Google's Accessibility Scanner** will classify this as
"Item Label" error (defined in the paper above), which will also mean a screen reader cannot
read the alternative text of the image to people with visual impairments.
![Screenshot of an image without contentDescription property in layout editor](accessibility-img/1.png){:width="500px"}
The goal of Part 1 of the assignment is to identify **at least 10** accessibility issues in the app
you will be given, **at least one** can't be found with the Accessibility Scanner. All of
the issues listed in the ASSETS/Epidemiology paper may NOT be represented in the app, but you should be aware
that they could be found in other apps. For your reference, we identified at least 12 errors in the app.
## Setup
In order to proceed you will need to setup your device and your Android Studio IDE.
### Adding Markdown Viewing in Android Studio
You will be writing your report in "Markdown." Markdown is a a text markup language that
allows for simple formatting using plain text files. We have provided you with a `Part1.md` starter
file that is in the root directory of your the repository you received when you accessed the
assignment.
You can edit your markdown file in any text editor, including Android Studio. We recommend you install
the [Markdown Navigator](https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced) to help
you preview your edits. (Click on the pictures to see a larger version)
[![Screenshot of the first step of installing the markdown navigator](accessibility-img/mdnavigator1.png){:width="250px"}](accessibility-img/mdnavigator1.png)
[![Screenshot of the second step of installing the markdown navigator](accessibility-img/mdnavigator2.png){:width="250px"}](accessibility-img/mdnavigator2.png)
[![Screenshot of the third step of installing the markdown navigator](accessibility-img/mdnavigator3.png){:width="250px"}](accessibility-img/mdnavigator3.png)
Once you have the Markdown Navigator installed, open up `Part1.md` and click the button pointed to
by the arrow in the following image to bring up the Markdown Preview pane.
![Screenshot preview pane of the Markdown navigator](accessibility-img/mdnavigator4.png){:width="500px"}
### Installing Accessibility Scanner
You must first install the Accessibility scanner on your Android Device or in your Emulator using the
Google Play store. IMPORTANT: The Pixel 2 XL Emulator does NOT have the Google Play store on it,
so you have to start by installing the Pixel 2 or other Emulator where you can also install the Play Store
using the *Tools-&gt;AVD Manager*. The best way to determine if the Emulator has the Play Store
is to look for the icon under the Play Store column in the AVD Manager.
![Screenshot of the AVD Manager with an emulator that has the play store and one that does not](accessibility-img/avd.png){:width="300px"}
To create another emulator, press the *Create Virtual Device* button, then find an emulator that has
the Play Store icon in the Play Store column. Click Next and follow the instructions for the rest of the installation.
![Creating a new device with the play store using the AVD Manager ](accessibility-img/playstoreemulator.png){:width="500px"}
Note that you will have to specifically choose this new emulator (as opposed to the one you were
using before) when you are running your application on the emulator through Android Studio.
To install the Accessibility Scanner, search for it in the Play Store and install it on your device or emulator.
The installation process will be the same for a physical phone or the emulator equipt with the Play Store.
Follow the instructions on the
[Getting started with Google Accessibility Scanner](https://support.google.com/accessibility/android/answer/6376570?hl=en&ref_topic=6376582)
page to get the scanner working on your device.
Another option is to install the Android Accessibility Suite which contains both the Accessibility
Scanner and TalkBack if it has not been installed before.
### Installing TalkBack
You will need to have a good understanding of how to set up and use
[Talkback](https://support.google.com/accessibility/android/answer/6283677?hl=en) one
of the assistive tools built-in to you Android. You may want to try using
talk back on another application before you use it on the app you are given for this assignment.
### Other Tools
Another built-in assistive tool is [Switch Access](https://support.google.com/accessibility/android/answer/6122836?hl=en),
which you may choose to set up and use.
## Writing the report.
Use the Accessibility Scanner, Talkback, and perhaps other tools to detect defects in our toy camera app.
The Accessibility Scanner is decent with suggested fixes to problems it finds, however, some solutions
are not obvious for each screen element type, so you will have to do some research to
find all of the attributes that help to make an application more accessible. It may also help
to use other tools (such as the Layout Inspector in Android) to help you track down the location
of the issue the Accessibility tools find.
As you find issues in the app, write them up in your report. Your report structure will contain
two sections, an Overview in which you will describe your experience using assistive tools while testing the
accessibility of the app before and after fixing issues, and a "table" of issues you found
and how you fixed them. The outline of this report is given to you in `Part1.md` which remember is
in the root directory of your the repository you received when you accessed the
assignment. To open this file you can either use the _File-&gt;Open_ menu item, or change the _Android_
drop down above the `app` folder to say _Project_ and double click on `Part1.md` from there.
![Viewing the project as an android project you can't see Part1.md](accessibility-img/androidview.png){:width="200px"} &nbsp; &nbsp;
![Viewing the project as just a project you can see Part1.md](accessibility-img/projectview.png){:width="200px"}
For each issue you identify within the app, document the following details:
- The XML id of the item that needs to be fixed. If there is no id you can describe it briefly (~3 words)
- The issue type as drawn from the list in ASSETS/Epidemiology paper.
- The fix should provide a brief description (1 sentence or so) of what you did. If the fix involves
changing or adding alt text, you should include the alt text you added for each inaccessible UI element in your
fix description.
- The file or files in which you fixed this issue
- The line number(s) where you fixed this issue
An example issue is shown in the `Part1.md` file. *Please* retain the two spaces at the end
of every line so the line breaks will be maintained
([examples](https://gist.github.com/shaunlebron/746476e6e7a4d698b373)). This will help the staff
in grading your assignment.
------ Sample Issue ------
*Id*: @+id/edit
*Issue*: Item Type Label contains unnecessary text
*Fix*: Remove the word "button" from the text description
*File*: string.xml
*Line number*: 11
**Resources**
- [Android Accessibility Overview](https://developer.android.com/guide/topics/ui/accessibility/)
- [Android Accessibility Guides](https://developer.android.com/guide/topics/ui/accessibility/apps)
- [Material Design: Assistive Technology](https://material.io/design/usability/accessibility.html#assistive-technology)
For each issue that you identified in the app, please repair it by
modifying code or XML layout file. You must also repair the sample
issue that we have identified but not yet fixed in the code. For
reference, in the sample solution we ran the app through the
Accessibility Scanner and identified and fixed at least 12 issues
(including the one we identified).
For any repairs involving strings, please add a new entry for the fix
into the strings.xml file, and then reference it (thereby retaining
the old entry in the file). Recall that you can reference a string by
changing the `contentDescription` property in the layout editor, or
calling the equivalent method (`imageView.setContentDescription(...)`)
All of these changes only require modifying existing XML attributes or
adding new ones; or changing a line or two of code.
# Turn-in
## Submission Instructions
You will turn in both Part 1 and Part 2 via GitGrade. The files you will need to include are:
```
- Part1.md
- MainActivity.java
- app_bar_main.xml
- content_main.xml
- nav_header_main.xml
- strings.xml
- colors.xml
```
## Grading (TBD)
Description of the experience using assistive tools to test the app (Accessibility Scanner, TalkBack etc.): 3 pts
Correctly documents all 10 or more accessibility issues including location of the fix: 10 pts
Fixes the issues identified in part 1 by modifying / adding new attributes to the xml tags: 10 pts
Updated content descriptions are correct per Webaim's guidelines: 2 pts
---
layout: assignment
published: true
title: Finding Accessibility
code: AS1
assigned: Date Assigned
due:
- <strong>Code</strong><br>
Due 10:00pm, Date<br>
Lock 10:00pm Date
- <strong>Peer evaluation</strong><br>
Out late Saturday night or Sunday morning<br>
Due 10:00PM Date
- <strong>Reflection</strong><br>
Due 10:00PM Date<br>
revised: 10:30 PM Tuesday, March 31, 2020
objective: Find examples of accessibility in the world
---
* TOC
{:toc}
# Assignment Description
This assignment requires you to find two examples of accessibility technology and document them (one for computer access and one for access to the world). In each case, you will make a short video demonstrating the technology and create a slide summarizing what you found.
## What counts as an accessibility technology
An accessibility technology is something that is used by a person with a disability to increase accessibility. It can be something that is included in the infrastructure (such as a [curb cut](https://en.wikipedia.org/wiki/Curb_cut)) or something that is used by an individual (such as [Proloque2Go](https://www.talktometechnologies.com/pages/proloquo2go), a symbol-based communication system).
Given the themes of the class,
- One of your two technologies should improve access to the world (such as Microsoft's [Seeing AI](https://www.microsoft.com/en-us/ai/seeing-ai)); the other should improve access to the computer (such as [sticky keys](https://en.wikipedia.org/wiki/Sticky_keys)) or a screen reader
- One of your two technologies should improve access using an infrastructure approach; the other can use an individual approach
While some technologies may be expensive or hard to get, many accessibility technologies are easily available and some are even re-purposed everyday items. To meet the requirements for this assignment, you'll also need to make sure that one of your chosen technologies is something you can try yourself (see below).
## What do you need to turn in
For this assignment, you need to meet the following requirements for each accessibility technology:
- You should find at least one video authored by or featuring a person with a disability showing how they use the technology. For example, here is a [personal perspective on audio crosswalks](https://www.youtube.com/watch?v=xPlsYhU1HBU)
- You should create a slide and add it to our shared slide deck featuring a picture of the accessibility technology, a link to the video you found, and answers to the following questions:
- What is the technology?
- Why was it developed?
- What are its strengths and/or weaknesses?
- What are the benefits that were not encompassed by the original intent?
- You should try at least one of the two technologies you find yourself.
# Turn-in
You will create a slide with links to the video you find, pictures of the technology, and a description of how to use it. You will also answer a few reflection questions on Gradescope. The questions include
1. What are three things that surprised you about the technologies you researched?
2. Do you think the assistive technologies you found are only useful by people with a specific impairment? Why or why not?
3. Compare and contrast the infrastructure and individual approach. What do you think is one positive and one negative of each?
### Grading (XX pts)
This HW will be out of XX points and will roughly (subject to small adjustments) be distributed as:
...@@ -20,9 +20,9 @@ questions or run into issue. ...@@ -20,9 +20,9 @@ questions or run into issue.
| Exercise | Peer Eval | Reflection | | Exercise | Peer Eval | Reflection |
|-------------------------------------------------------------|--------|--------|---------| |-------------------------------------------------------------|--------|--------|---------|
| [Finding Accessibility]({{site.baseurl}}/assignments/finding-accessibility) | | | | [HW0: reflection on motivation]({{site.baseurl}}/assignments/hw0-learninggoals) | | |
| [Website Accessibility]({{site.baseurl}}/assignments/website) | | | | [Activity 1: AT around us]({{site.baseurl}}/assignments/act1-finding-accessibility) | | |
| [Android Accessibility]({{site.baseurl}}/assignments/android-accessibility) | | | | [HW1: improve a screen reader]({{site.baseurl}}/assignments/hw1-nvda) | | |
Reminder: assignment and solution code must *not* be shared or made public through gitlab, or posted Reminder: assignment and solution code must *not* be shared or made public through gitlab, or posted
......
...@@ -42,9 +42,13 @@ Yes! Everyone planning a career in interactive technology should understand acce ...@@ -42,9 +42,13 @@ Yes! Everyone planning a career in interactive technology should understand acce
This class will teach you This class will teach you
- how to make interfaces and interactions accessible.
- how to solve an accessibility problem
- What access technologies already exist. We will find examples, watch people talk about how they use them, and help with or shadow someone using AT (tentative).
- ability to convince others that accessibility is important
- How to build physical access technology (AT). We will learn about and experiment with Arduinos (and connect them to our phones!), and learn about and experiment with fabrication technology. - How to build physical access technology (AT). We will learn about and experiment with Arduinos (and connect them to our phones!), and learn about and experiment with fabrication technology.
- How to build accessible interfaces. You will make your own webpage accessible. - How to build accessible interfaces. You will make your own webpage accessible.
- What access technologies already exist. We will find examples, watch people talk about how they use them, and help with or shadow someone using AT (tentative).
- Where we came from and where we are going. You will learn about some of the history of access technology, including how they are used, how they are constructed, when and how they were developed/adopted and what might be part of the future of AT. - Where we came from and where we are going. You will learn about some of the history of access technology, including how they are used, how they are constructed, when and how they were developed/adopted and what might be part of the future of AT.
Taking a class is a big commitment, and you will work hard in this class. So we want to help you make sure this is the right class for you. Below is some information about prerequisites and expectations. Taking a class is a big commitment, and you will work hard in this class. So we want to help you make sure this is the right class for you. Below is some information about prerequisites and expectations.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment