Giter Club home page Giter Club logo

ucfopen / udoit Goto Github PK

View Code? Open in Web Editor NEW
108.0 32.0 63.0 20.27 MB

The Universal Design Online content Inspection Tool, or UDOIT (pronounced, “You Do It”) enables faculty to identify accessibility issues in their Learning Management System. It will scan a course, generate a report, and provide resources on how to address common accessibility issues.

License: GNU General Public License v3.0

JavaScript 25.11% HTML 26.38% PHP 47.73% Dockerfile 0.15% Shell 0.01% Twig 0.57% Procfile 0.01% CSS 0.05%
canvas instructure education lti eduapp accessibility section-508 canvas-lms edtech a11y

udoit's People

Contributors

alanfcmv avatar atarisafari avatar bagofarms avatar cidilabs avatar dependabot[bot] avatar dmols avatar eriko avatar escull75 avatar jasonmatos23-git avatar jonespm avatar ottenhoff avatar rob-3 avatar simonrothucf avatar ssciolla avatar ssilverm avatar taheralfayad avatar webchuckweb avatar yorchperaza avatar zqian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

udoit's Issues

Only the first image is fixed using UFIXIT

On a page with multiple images with alt text errors, UFIXIT will work on the first one, but all subsequent images will not have any changes made, even though UFIXIT reports "Fixed"

Update README

Some notes about the README based on my run through the initial setup of this tool on my local machine.

I think it would be useful to include a list of things you'll need to get started, including:

  • A development instance of Canvas (or production if you're brave)
  • MySQL installed (with version?)
  • Any other dependencies.

Some general questions I think could be answered in the README:

"What are my options for development or testing?" (Heroku, local, etc)
"Can I run this against a test instance of Canvas? How?" (at least provide a link to an external resource)

We should probably move the class and method stuff into the wiki.

"How do I get started with automated testing?"

Error on strong text

UDOIT indicates that the following HTML is inaccessible:
<p><strong>Bold text</strong></p>

While I could certainly understand a warning in this instance, there are instances where you may want to indicate that a line of text is important, but not a heading.

Clarify phrasing of "Change paragraphs to headings"

Users can interpret this as telling them to style their paragraphs of text as headings. Instead, it should be something like "Avoid using styles for document structure."

Also, add this sentence to the beginning of the description:
"Bold and Italics are used to emphasize text, whereas headings are used to define the structure of the document."

Change pNotUsedAsHeader to a Suggestion

pNotUsedAsHeader is an error right now, but it should be a suggestion. We are not sure of the content creator's intent with a bolded line of text, so it makes more sense as a suggestion. Plus, it's already listed as a suggestion in "What does UDOIT look for?"

Remove requirement for the api base url and referer test in localConfig

Use the LTI variable substitution feature to request "Canvas.api.domain", which should negate the need for the api base url variable or the referer test in localConfig. This will also allow UDOIT to be installed in one place and accessed from multiple instances of Canvas.

See this page for more information on how to do variable substitution: https://canvas.instructure.com/courses/913512/pages/variable-substitution?module_item_id=6827542

Udoit submit form doesn't handle error case

In my work on adding heroku support I noticed the udoit submit doesn't handle error state when submitting to progress.php.

If progress.php errors, the interval just keeps running silently without updating the user.

Document PHP 5.4 Requirement

Hi There,

This tools looks great, we are planning to implement it in the coming weeks/months. When demoing it on one of our servers, I realized it requires PHP 5.4. Is this documented somewhere? If not, I'd suggest adding it to the (otherwise excellent) install instructions. If this is documented somewhere, please forgive me!

Thanks.

~ Cooper

Create an error summary view

This could be an element you can open up that would give you a summary of how many of each type of error exists. Errors with zero occurrences would not show up in the summary.

Clean Up API Call Handlers (Both Transmitting and Receiving)

In multiple places UDOIT as well as UFIXIT saves redundant variables in data structures. Reconfigure the structure of the data passed around to only allow values consistent in all applications to be outward facing and other non-consistent variables to be placed in outward-facing argument holder (an array)

Suggest better colors to the user in the color contrast UFIXIT

When a color contrast issue is discovered, allow the user to select a color with better contrast based on the colors available in the Rich Content editor. These colors should be filtered down to those that provide enough contrast with the background color.

Pull Quail library out and include it with composer

The quail library included in UDOIT is a modified version of a very old version of QUAIL.

I've exported the google code version here https://github.com/iturgeon/quail-lib

I'd like to update that library it with the changes UDOIT has added and move it to a composer installed library.

Bonus level 2: QUAIL has a few dependencies of it's own, investigate if those can be plucked out.

https://github.com/DaveChild/Text-Statistics under core/quail/common/services/readability/php-text-statistics/

https://github.com/git-mirror/simpletest is under core/tests/simpletest

"No table headers found" in a table that already has headers (see comments for sample code)

Week/Dates

Mode

Topic

Assignments

Due Dates

Week 1

F2F

 Course Orientation

Syllabus Quiz

 8/31 at 11:55pm EST

Week 2

Online

 

 

 

Week 3

 

F2F

 

 

 

Week 4

 

Online

 

 

 

Week 5

 

F2F

 

 

 

Week 6

 

Online

 

 

 

Week 6

 

F2F

 

 

 

Week 7

 

Online

Midterm Exam

 

 

Week 8

 

F2F

 

 

 

Week 9

 

 

Spring Break

 

 

Week 10

 

Online

 

 

 

Week 11

 

F2F

 

 

 

Week 12

 

F2F

 

 

 

Week 13

 

Online

 

 

 

Week 14

 

Online

 

 

 

Week 15

 

F2F

 

 

 

Week 16

 

Online

Final Exam

 

 

Build and export a test course.

I'd think it'd be super useful for testing to have a fully constructed Canvas course that touches each feature UDOIT identifies.

If we could export that and add it to the source, contributors would be able to more easily test functionality.

(High) Add spacebar key handler for tab widget tabs

This issue is in relation to the tab widget used to switch between "Scan Course" and "View Old Reports"

One should probably be able to select a tab with the Spacebar key, as well as the Enter, key, since the Enter key causes a user to enter and exit Forms mode in JAWS. Switching modes every time you want to change tabs may be confusing and/or cumbersome for these screen reader users.

Note: If you do this, remember to stop propagation of the Spacebar key event, so it doesn't trigger a page down.

Add a detection feature for missing canvas api key.

@iturgeon and I discussed the utility of detecting if a master api key is present when running the app.

If now, we want to present the user with the ability to paste in their personal developer key.

This would allow them to quickly test UDOIT's capabilities without the need for a master key.

Redesign ability to Collapse Errors

Currently, when an error description is clicked within a UDOIT Report prior to being fixed, if UFIXIT is enabled for that error otherwise indefinitely, the first error collapses even if multiple instances of the error exists for that course related document (page, discussion, assignment, etc.). If UFIXIT is enabled for that error, similarly only the first error is collapsed, however, an additional error instance number is present when un-collapsed. See images for reference.

screen shot 2015-08-25 at 4 52 33 pm

screen shot 2015-08-25 at 4 53 25 pm

screen shot 2015-08-25 at 4 54 09 pm

Update Oauth2 process to use new refresh token scheme

Here's the documentation of the changes to the endpoint: https://canvas.beta.instructure.com/doc/api/file.oauth_endpoints.html#post-login-oauth2-token

Basically, when we exchange the single-use code for the user's api key, Canvas also sends along a refresh token and an expiration time. Once the API key is past this expiration time, it will no longer work, and we'll have to use the same API endpoint we used to get the original key, but passing along the refresh token this time, returning a new key, new refresh token, and new expiration time.

Incorrect filename for PDF when running two scans at once.

To reproduce:

  1. Open course A and start a scan, then open course B and start a scan.
  2. Course A finishes first, so you click the "Save report as PDF" button.
  3. The PDF will download with the filename being based on course B rather than course A.

Missing $db_reports_table Variable in LocalConfig.template.php

The config template file currently in use is missing the $db_reports_table variable in the Database Config section.

/* Database Config */
$db_host = '';
$db_user = '';
$db_password = '';
$db_name = '';
$db_user_table = '';

This causes an undefined variable notice when running reports tracing back to Line 82 of process.php:

$sth = $dbh->prepare("
    INSERT INTO
        $db_reports_table
    SET
        user_id=:userid,
        course_id=:courseid,
        file_path=:filepath,
        date_run=NOW(),
        errors=:errors,
        suggestions=:suggestions
");

The lack of this variable results in a failed database insert that triggers the "Ya done goof'd" error.

The fix is to add the missing variable to the Database config section.

Thanks, and let me know if you need any other information.

~ Cooper

Deploying to heroku?

Have you, or do you know of anyone that's deployed this to heroku? PHP apps work fine on heroku, BTW, as long as they adhere (or can be easily modified) to 12 factor principles.

Using file system storage for reports stands out as being problematic - it means the app couldn't easily be put behind a load balancer without using NFS or some other shared file system. Typically you'd use database, s3, or some other detached persistence in a separately scaled service.

Thanks! We're interested in hosting this but would like to keep it consistent with our other heroku-hosted LTI apps.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.