Showing results for 
Search instead for 
Did you mean: 



A few institutions have contacted me over the last few weeks regarding an error they receive when launching UDOIT in Chrome.  The full error is "Missing Session information. Please refresh the page. Missing: base_url".  Here's how to solve it.



0 9 308

I'm back with another bugfix release!  If you are able, it would be most helpful if you could update your QA or Testing instance of UDOIT to this version; the last few bugfix releases were made possible by institutions testing out the code in their unique environments.  I greatly appreciate the help!

Upgrade Instructions

  • Download UDOIT version 2.6.4
  • Test in a development or QA environment, not on production.
  • If you are still using PHP 7.1 or below, you must upgrade to 7.2 or 7.3.
  • If you're coming from a version older than 2.6.3:
    • (Self-Hosted) Update your localConfig.php file to make sure it's up to date with localConfig.template.php
    • (Heroku-Hosted) Update your Config Vars to include the new variables
    • back up your database and run "php composer.phar migrate"
  • Run "php composer.phar install"
  • (Heroku-Hosted) Follow the instructions in

Bugs Fixed

  • Changed "expire" key to "lifetime" for creating the session cookie. The old key was invalid, and was causing a PHP warning to be thrown. #530
  • Added a line to Quail to remove whitespace from HTML to eliminate false positive for missing table headers. #529
  • Updated html-minifier to a fork that fixes a warning in PHP7 #527
  • Updated to latest version of Composer #527
  • Changed misleading error when a syllabus_body is not returned from Canvas. If UDOIT is using a scoped developer key, an empty syllabus_body will display an error message to the user explaining the limitations of scoped developer keys in some installations of Canvas. If UDOIT is not using a scoped developer key, UDOIT tells the user that no accessibility issues were found in the Syllabus. #490

0 0 223

This release fixes a number of issues, both new and old.  A huge thanks to escull‌ for figuring out so many of these.  If you've been having any trouble with tables, please test out this version and let me know if it your issues are resolved.

Upgrade Instructions

  • Download UDOIT version 2.6.3 now!
  • Test in a development or QA environment, not on production.
  • If you are still using PHP 7.1 or below, you must upgrade to 7.2 or 7.3.
  • (Self-Hosted) Update your localConfig.php file to make sure it's up to date with localConfig.template.php
  • (Heroku-Hosted) Update your Config Vars to include the new variables
  • Run "php composer.phar install"
  • If you're coming from a version older than 2.6.2, back up your database and run "php composer.phar migrate"
  • (Heroku-Hosted) Follow the instructions in

Bugs Fixed

  • If you've been having trouble with detecting and fixing table headers, we may have fixed the issue:
    • UFIXIT for tables fixed for PHP 7.3. So, that means UDOIT is now compatible with PHP 7.3!
    • UFIXIT for tables now works when selecting "first column" or "both".
    • One institution reported that UFIXIT added an empty row to a table when a space is present in the HTML. This was fixed.
  • The status page accurately reports status of the Developer Key.
  • Decreased memory usage when generating "Most Common Errors" report in the admin panel.


  • A list of all the tests UDOIT looks for was added to the README
  • The YouTube Terms of Service and Google Privacy Policy were added to footer in order to comply with the YouTube API usage requirements. This feature is able to be enabled, disabled, and customized.
  • A less expensive endpoint used for testing the Google API key in the status page.

0 15 422

Most of the functions in Microsoft Teams have a slightly different Keyboard Navigation method than most functionality within Canvas. Microsoft Teams will primarily use the Tab key to move between a group of objects, and then from that group, use the Arrow Keys to navigate within the controls of that group. However, if the focus indication is placed over a larger set rather than on a single control in a group, you will need to press the Enter/Return key first in order to interact with that group.

Example: Keyboard Navigation for a Message


Pressing the Tab key will create a focus box around the entire message


Pressing the Enter/Return key will place focus around the top half of the message


Pressing the Down arrow will move focus to the Reply section of the message


Pressing the Up arrow will move focus back up to the top half of the message


Message Top Half:

Pressing the Enter/Return key will display the Emoji Reactions, which can be selected with Arrows & Enter/Return key


Pressing the Tab key will move you to the “…” menu, which you can navigate with Arrows & Enter/Return key


Message Bottom Half:

Pressing the Enter/Return key will open the reply text field


Pressing Tab will place focus in  lower settings and attachment menu bar


Pressing Tab again will place focus on the Send icon


Pressing Tab again will place your cursor in the text field


Hopefully this document helps give a good indication of how to navigate smoothly with the controls in Microsoft Teams. Additionally, Microsoft has extensive accessibility support documentation that includes screen reader walkthroughs & keyboard shortcuts.

0 1 263

With things changing and students transitioning to online classes from home, we want to ensure that they have the resources to learn and access content in Canvas.  The following offers alternative technologies users can utilize if they do not have access to the same technologies available through their institution. 

The following are free accessibility tools that users can download which have been thoroughly tested within Canvas by our Accessibility team.

NVDA is a great screen reader for Windows platform and is free to use.  We suggest pairing NVDA with Firefox when navigating Canvas. You can download them through the following links:

NVDA Download

Firefox Download

Below is a user guide that has many of the keyboard commands and features that you can access through NVDA.

If you’re a Mac user at home but use a Windows machine in class, you can use VoiceOver paired with Safari which is already available on your Mac computer, iPhone, iPad, or iPod touch.  There is no need to download or setup anything.  

Below is a getting started guide with the basic commands for VoiceOver.

We also have Android and iOS apps available that you can download through their respected app stores.  Both apps have been tested in Canvas with iOS VoiceOver and Android’s TalkBack.



For additional information on Accessibility within Canvas or our apps, please visit our community guides which have a lot of useful information: 

Accessibility within Canvas

Canvas Student App

If you have any questions or concerns, please feel free to reach out to our customer support department and we’re more than happy to further assist you.

2 0 660

This release fixes some bugs that were reported shortly after the release of 2.6.1  Thanks to‌ for discovering these!

Download version 2.6.2 of UDOIT now! Please refer to the release notes for 2.6.0 for installation and configuration instructions.

Bugs Fixed

  • The cookie fix for Safari (safari_fix.php) would load even in Chrome
  • safari_fix.php would load when trying to access udoit.xml.php, preventing initial setup of UDOIT.

0 1 158

This release fixes some bugs that were reported shortly after the release of 2.6.0.  I would like to thank Tulane University and Cidi Labs for discovering these issues and contributing solutions!

Please refer to the release notes for 2.6.0 for installation and configuration instructions.

Bugs Fixed

  • Updated mPDF version to the latest, which adds compatibility with PHP 7.2.
  • Repositioned the SameSite cookie settings so that they can be overridden in localConfig.php.
  • Added a fix that works around the default Safari cookie policy.  Essentially, it streamlines the process of creating a cookie for a first-time UDOIT user so that Safari allows UDOIT to set cookies from within Canvas in the future.
  • Fixed issue where activating the UFIXIT button with your keyboard would cause you to lose focus.  Now, focus changes to the container for the UFIXIT interface after the UFIXIT button is activated.

0 0 105

This is a critical update for any institutions that run UDOIT on a separate domain from their instance of Canvas, such as the LTI server being "" and Canvas being "".  This update needs to be applied to keep UDOIT working for Chrome users starting in February.  Check the Chromium Blog for more information.

If you aren't able to update UDOIT to the latest version before February, you can manually fix this issue by inserting this session cookie settings code in config/settings.php immediately after the "define('UDOIT_VERSION',..." line.

Important Note:  If you are upgrading from an existing installation, there are some specific instructions you need to follow.  Refer to the full release notes.

PHP 7.3 Incompatibility:  Unfortunately, due to time constraints, we were still unable to figure out the issue with PHP 7.3 on Heroku.  I would appreciate any help the community can provide testing UDOIT on PHP 7.3 and 7.4 on their "testing", "staging" or "QA" servers.  For more information see Issue 422.

Bugs Fixed

  • The Admin Panel was making multiple calls to the backend #440
  • Hardcoded reports table name #436
  • MariaDB did not like the OFFSET syntax that was compatible with MySQL and PostgreSQL #435
  • Expand/Collapse buttons did not have screen-reader accessible labels #458 (Thanks to UMN and Cidi Labs for reporting this!)
  • Cookie policy did not support soon-to-be-released default settings in Chrome #459 (Thanks again to Cidi Labs for contributing code, and to everyone who contacted me about this!)

Features Added

  • Compatibility with Scoped Developer Keys #406 #453.  Please see the updated Canvas Oauth2 section of the README for more information.
  • Temporarily caching results of YouTube and Vimeo API calls to eliminate redundant calls and reduce API quota usage #360 #455
  • Ability to scan only for Errors, Suggestions, or both #424
  • Ability to ignore unpublished content during scan #423
  • All instances of error_log were converted to use Monolog #412.  This improves error logging, and makes debugging easier.
  • YouTube and Vimeo links in "View the source of this issue" open in a new window #377
  • Detecting the language of video captions and comparing them to the course language setting #360.
  • UFIXIT for "Avoid using styles for document structure" #60
  • Instructions for updating existing Heroku installations #471

3 21 689

This release is dedicated to the memory of Dana Danger Grey, a wonderful person and fierce proponent of accessibility.  Read more about Dana's life here.

The main focus for this release is adding the "first draft" of the admin panel.  This interface is accessible from the Account Navigation menu.  Here are its current features:

  • View all scans done in all courses at your institution.
  • View the most common errors found in courses.
  • Administer users.
  • View the growth of users over time

Because this feature is still experimental, we have disabled it by default.  However, it's very simple to enable, which is explained in the README.

Important Note:  If you are upgrading from an existing installation, there are some specific instructions you need to follow.  Refer to the full release notes.

PHP 7.3 Incompatibility:  If you are using PHP 7.3 on your servers, give yourself a pat on the back for keeping up with the latest versions!  Unfortunately, due to some issues we've had with PHP 7.3 on Heroku, we do not officially support it at this time.  More testing is needed to determine compatibility.

Bugs Fixed

  • Script tags are now stripped from HTML code snippets.  This was causing a number of rendering issues.
  • Heroku instances made within the last couple of months had many issues with UFIXIT.  This issue has been fixed, but if you are experiencing those issues, you will need to go through the Heroku instance creation process again.

Features Added

  • Admin interface
  • Images marked as decorative in the RCE are detected and ignored (no error or suggestion is thrown).
  • The date and time for old reports is now displayed in a more human-readable format.
  • Database options can now be passed through to the PDO constructor by way of the localConfig file.
  • The Job Queue table name is now configurable.
  • Removed compatibility with deprecated version of PHP (5.6 and 7.0)

12 32 1,206
Learner II

I have always appreciated that Canvas takes accessibility seriously, as evidenced in their Voluntary Product Accessibility Template, community efforts and frequent mentions of accessibility in their release notes it is clear that accessibility of the product is a priority. 

That said, there are also lots of opportunities for additional features impacting students with disabilities to be developed. While you can find many of these ideas in the Canvas Studio searching for the #accessibility tag,  this document can hopefully be a resource to help organize and track some of those features. This document is open to anyone to edit so feel free to add any features that have been missed or leave a note in the comments. 

If you agree with any of the feature ideas below please take a minute to add your vote. Also, if you have ideas for additional features that have not been added please to add a new feature and add the link below! 

Accessibility Feature Request Resources

  1. How does the feature idea process work in the Canvas Community?
  2. Accessibility Group 
  3. Feature ideas tagged with accessibility, disability, or accommodation
  4. Canvas/ATHEN Accessibility Community (contact to join)

Features Sorted by Component

General Accessibility






Rich Text Editor


Assistive Technology Support


Font Size










Canvas Community


Completed Accessibility Features


Cold Storage -  Accessibility Features Not Implemented

  1. Incorporate Mathjax into the html editor
  2. Use MathJax for better client-side equations and better user experience and accessibility

9 2 1,590
Community Member

I've written some accessibility tools for Canvas using JS, they're plug and play so you shouldn't need any programming knowledge to incorporate them into your own instance.

See my original post in Canvas Admins:‌ Using JS to Add Accessibility Features to Canvas‌.

Please leave any comments/feedback here for me to see Smiley Happy Otherwise I can't fix or add anything to it!

3 0 326

Fixes the following bugs:

  • There was a typo in the migrations script (thanks!) that would prevent reports from very old versions of UDOIT from transferring to the database.
  • Special characters in page titles would break the "view source of this issue" button (thanks Justin Lopez from FIU!).

View the release notes to download this release.

2 0 249

In my haste to release 2.4.0 before the holiday break, I forgot to include the changes I made to the "No closed captions found on media comment" error.  You can view the 2.4.1 release notes to download this version of UDOIT.

Happy new year!

1 0 179

We are working on some larger features for the 2.5.0 release, but we wanted to get these out to you before the start of the new year.  Many of these features and bug fixes are a direct result of the conversations we've been having with people on the Canvas Community and the UCF Open Source Slack.

(Yes, Christmas is a real town in Central Florida.)

Important Note:  If you are upgrading from an existing installation, there are some specific instructions you need to follow.  Refer to the full release notes.

Bugs Fixed

  • Bold text with color emphasis is no longer flagged as an error.

  • UFIXIT for links now lets you include a portion of the URL as your link text (e.g.: "Wikipedia" is perfectly good link text for "").

  • Videos playing within "View the source of this issue" now stop playing when you click "Close issue source".

  • Improved detection of YouTube and Vimeo videos to avoid erroneous results.

  • Docker files no longer mount as directories.

Features added

  • Updated the description for missing captions on Media Comments to make it more helpful.
  • Added Endpoint that returns the health status of the application in JSON for use in status dashboards.
  • Added UI for marking videos that are unlisted, private, or deleted as requiring manual verification for captions.
  • Added check for valid YouTube and Vimeo API keys, marking all videos for manual verification if a valid API key is not found for that service. A log entry is also made whenever an invalid key is found.

Read the full release notes for more information and installation/upgrade instructions.

The UDOIT team wishes everyone a safe and happy holiday!

3 0 140
Community Member

This is a 1-page accessibility checklist that I designed for staff. I know it misses some things, but I have aimed to condense all the key points for staff to have a basic understanding of what their course needs to look it. If I had given some staff pages and pages, I don't think they would ever have looked at it, so this is a 'quick' accessibility checklist with the most obvious things! We have to start somewhere. Hope it's useful. 

5 1 702

This is a very tiny update that fixes an issue with false positives and Vimeo videos.  Previously, UDOIT was only detecting Vimeo videos embedded in an iframe because the URL was of the form "".  However, when you simply link to a Vimeo video, it's in the form "".  UDOIT was detecting those Vimeo video links, but not properly checking them for captions, resulting in a false positive.

This release does not require any changes to your localConfig file, migrations for your database, or updates to packages.  However, you should still test it on a test installation of UDOIT before moving it to production.

To download, visit Release v2.3.5 · ucfopen/UDOIT · GitHub 

3 12 470
Explorer III

Hi all. So, if you are/have attended InstructureCon 2018 and were able to attend the "Y'all Do It: Crowdsourcing
Development of UDOIT" presentation, you already know about the UDOIT User Guide and about how you can contribute to it. For the rest of y'all, here is what you missed.

What is UDOIT?

For those who don't yet know, UDOIT is an automated accessibility auditing tool for Canvas courses that was developed by University of Central Florida as part of a Canvas Grant. To learn more about UDOIT, explore the following links:

Below is UCF's video overview of UDOIT:

Note: Whenever you're installing an initial or new version of UDOIT into Canvas, PLEASE install it to a test instance and make sure it works before installing it to your production instance.
During the intial writing of this post, Clemson had the latest version installed on our test instance, but, because we had not been able to get it to work, it had not touched our production instance and the faculty were none the wiser.

Why Do You Or Why Does UDOIT Need a Guide?

If you or your faculty aren't really familiar with the rules or expectations of digital accessibility, you need a guide. Automated accessibility auditing tools are thought to only catch about 25% of accessibility issues, and UDOIT is no different. There are some things that UDOIT will flag that aren't accessibility issues and then there are some accessibility issues that won't be flagged.

For example, in early versions of UDOIT, all color contrast error reports were based on the assumption that the text was on a white background. If the text was not on a white background, some text colors that would be accessible on white but not accessible on the actual background color would not be flagged, and text colors that were not accessible on white backgrounds but were accessible on the actual background color would be flagged. 

Knowing when you should address or ignore a UDOIT report is important.

How Can You Get A Copy Of The Guide?

This guide is available in Canvas Commons with a Creative Commons Attribution, Non-Commercial, Share-Alike license. Because Canvas Commons doesn't give me a way to track who and how many of your are downloading the guide, please let me know you've downloaded it through a comment in Canvas Commons or here

Jacob and Karen have also expressed that they'd love to know when you've downloaded UDOIT too. So, when you do that, please leave a comment on Github or in Canvas Community (the UDOIT Information page would be a great).

Also, after you've tried the UDOIT User Guide, feel free to leave feedback here or in Canvas Commons as well!
If your feedback includes questions, please post them here instead of Commons as Commons won't allow me to reply to comments.

To access the User Guide, you must first be logged into Canvas. After you've logged in, follow this link:

UDOIT User Guide in Canvas Commons

For those who cannot access Canvas Commons, I have attached a .imscc zip file. You'll need to follow How do I import a Canvas course export package? directions to upload it to your Canvas instance.

To see an Overview of this guide, watch this UDOIT User Guide (v1, 2017) video overview.

What Can You Expect In The Next Version?

We're hoping to update the UDOIT User Guide after 2.4.1 or 2.5.1 is released (which is slated to happen this year). If we're able to do so (see earlier note), you can look forward to the following:

  • Updated information (duh)
  • Updated, cleaner look with (hopefully) simpler code.
  • Tips for using UDOIT alongside Canvas's built-in auditing tool.
  • Possibly other features suggested by YOU!

1 3 3,330

Wait?  What happened to 2.3.3?  Well, I released 2.3.3 and 2.3.4 on the same day, so I figured I'd cut down on the clutter and do one post.  This one contains a fix for a pretty major bug in 2.3.2, so it's definitely worth upgrading.  As with every release, please test this out on your own test server before deploying it to your production server.

I also wanted to mention that I'll be at InstructureCon/Carn next week!  I'll be presenting with‌ and‌.  Check out Michelle's blog post for more information.  If you want to catch up with me and/or get a sticker, just look for the guy with a sign on his backpack that says "Ask me about UDOIT".  I'll also be attending Hack Night again this year, so feel free to come by and talk shop.

Anyway, on to the UDOIT update:

Highlighted Changes

  • Fixed major performance bug that caused even small courses to time out.
  • Added documentation for Vimeo API keys and Google Analytics tracking codes to and
  • Added support for PHP 7.2 and cleaned up documentation to remove references to 5.3 and 5.4

See the release notes for UDOIT Version 2.3.4 for download links.

3 0 174
Community Member

Word, PowerPoint, & Acrobat logos.

Enrollment for WebAIM's new course––Accessible Documents: Word, PowerPoint, & PDF––is now open. This online, video-based, independent-study course will be offered in Canvas Catalog and requires between two and four hours of course activity each week, for four consecutive weeks.

Participants who demonstrate their mastery of the course materials through weekly quizzes and exams will receive a Certificate of Completion. These certificates will allow individuals and/or organizations to document training and proficiency in creating accessible web documents in common formats.

The first cohort of the course starts on Monday, July 9th. New cohorts will start on the first Monday of each month. To enroll go to Accessible Documents: Word, PowerPoint, & PDF | July 2 - October 3.

A promotional code* for 20% off the $125 course fee is available for the first cohort of the course. Use the code "LAUNCH". For more information, visit the Document Accessibility Course page on the WebAIM website.

WebAIM_ web accessibility in mind

*Valid July 2 - 10, 2018.

2 0 357

Hey Everyone!

One of Instructure’s core values is openness. We believe that great ideas can come from anywhere and that one of our greatest assets is you—the amazing Canvas community. It is from this belief that the founders of Instructure decided to make Canvas an open source LMS. As we continue to add new capabilities to Canvas, we’re committed to making them available to the open source community. Not only do we work hard to publish the code for Canvas, we also allow anyone to jump into github and make contributions. We review every single pull request that comes in, and numerous community projects have been added into the core product. To everyone who has helped make Canvas what it is today, THANK YOU! To anyone who hasn’t yet contributed, we invite you to dive in and give it a go!

In fact, that’s the core message of this post: we’d like to encourage even more people to make contributions to Canvas, and we’re actively working on ways to make it easier for you to do so. We’re extremely grateful for all the pull requests we receive, and we’d love to have even more. And, as it turns out, we think we might have a good project for new and seasoned contributors alike.

We recently released a new tool to help identify accessibility issues when creating content in Canvas, called the accessibility checker. It runs in the Rich Content Editor (RCE) and detects several of the most common accessibility mistakes that users make when creating content. In addition to alerting the user about any issues, the checker also makes it easy for the user to resolve the concern.

279411_Screen Shot 2018-06-05 at 3.52.44 PM.png

Currently, the tool checks for 11 different accessibility errors. We’re passionate about accessibility, as we know many of you are, and we’re optimistic about the potential that this tool has to raise awareness and education on the importance of accessibility. The accessibility checker has been fully open sourced, and everyone is invited to check it out on github! We’ve added several items to the project, some of which have been identified as good projects for beginners to tackle:

Project Ideas:

  • Don’t combine words when merging sequential links
  • Add “Auto Fix” button for resolving color contrast issues
  • Link Validation
  • Check for ordered and unordered list structure
  • Check that headings have appropriate tags
  • Check links for descriptive words
  • Check videos for captions

Besides the items that we’ve added, we’re sure many other great ideas will come from the community. Please feel free to share this project with developers or anyone you know who might be interested in seeing this project move forward. Is your computer science class looking for a worthy project? Maybe this is it.

As we work together, we’re confident that this tool will be a positive driver in making learning content more accessible for everyone.

19 0 2,256

This release removes support for PHP 5.4 and 5.5, fixes some bugs, and adds some convenience features.

Highlighted Changes

  • Supported PHP versions:  5.6, 7.0, 7.1
  • Added a configurable maximum size for files before they are marked as "unscannable".  This is mainly to prevent server and database issues, but also promotes best practices for students on mobile devices or slow internet connections.  Default value is ~50MB
  • Added a configurable value for the maximum allowed length of ALT text.  Default value is 125 characters. (Thanks‌ for suggesting it!)
  • Added detection of captions in Vimeo videos.
  • Added detection of Dailymotion videos.  It will create a suggestion for every video found regardless of the presence of captions.
  • Added a Report Summary that contains totals for each type of error and suggestion.
  • Added "download" and "view in folder" buttons for each unscannable file.
  • Updated outdated links to accessibility resources.
  • Clarified phrasing for closed caption errors.

For more information, and to download the latest release, visit the v2.3.2 Release Notes.

If you previously installed v2.3.0, please follow the "Existing Installations" instructions in the v2.3.1 Blog Post.

5 6 872

Here is a handout with tips for addressing accessibility issues in a Canvas course after the fact or before the fact.  Feel free to adapt it to your school, and please comment if you have suggestions/edits for improving this document.  Here is a Google Doc version of this accessibility checklist (short link: and here is a video demonstrating how to fix common accessibility issues, such as fixing video captions or using the accessibility checker in Word or Canvas.

How to Fix Accessibility Issues in Your Canvas Course

Learn more about accessibility & universal design at &

  1. Student Support - The course should include information about the office for student disability services and how students with disabilities may receive accommodations
  2. Software - Check the accessibility of all tools and software used in the course
  3. Web Pages - Check Canvas content with the Canvas accessibility checker (and/or UDOIT or Ally if available)
  4. Web Links and Text - Check that all your links are up to date and have descriptive text
  5. Images - In addition to checking that all images have alt text and proper color contrast:
  6. Videos - all videos and audio should have correct captions or transcripts
  7. Files - All files and documents should be checked for accessibility
  8. Math - All math equations and formulas should have alt text or MathML representations
  9. Alternative Formats - A separate accessible version of content should be made available when there is no other way to make it accessible
  10. Assignments & Quizzes - All assignments and online activities should have clear expectations to help students understand how to do them and why they are doing them
  11. Student View - Check the course in student view for broken or inaccessible functionality
  12. Mobile Compatibility - Check the course for usability in the Canvas Student app

How to Prevent Accessibility Issues in Your Canvas Course

  1. Modules - Use the modules page as the primary place where you build and organize your course.  Think of it as the table of contents or outline or to-do list for your course. If you have a reading or assignment or discussion for a particular week or unit, add it to the module for that week or unit.  This way, everything associated with that week or unit will be more visible to you and your students. You can see in a glance if something is not available or unpublished that shouldn’t be, or if a requirement was not set, and so forth.  See How do I add a module?  and How do I add assignment types, pages, and files as module items?
  2. Don’t Copy & Paste – Don’t copy from other courses or websites or documents into Canvas.  If you do, the text will copy over just fine (although it may mess up the text styles and fonts), but images will not copy over like they would when copying and pasting into a Word document.  Images have to be downloaded from the other site (right click on the image and choose ‘save image as’), and then you can upload and insert the image into Canvas, entering alt text when doing so.  When copying content from another Canvas course, use the course import tool to ensure all images and links are fixed.  Use the link validator to check for any broken images or links.
  3. Images – When inserting an image, always remember to set the alt text with a description of what is in the image for screen readers.  If you want to embed a very large image, reduce its file size with a photo editor first. See: How do I embed images from Canvas into the Rich Content Editor?
  4. Tables – Minimize your use of tables, but when you do use them, set a caption and header row or column in the table properties. Do not set the width of a table or table cell to a fixed value, use percentages instead.  Reduce the number of columns for readability on mobile devices. See How do I insert a table using the Rich Content Editor?
  5. Text Color - You should not use color or font size alone to distinguish text or convey importance. See How do I add and modify text in the Rich Content Editor?   Check that color contrast is sufficient using this Color Contrast Checker from WebAIM.
  6. VideosSpeak clearly when recording videos and audio so that automatic captions will be more accurate and save you time with making any corrections.  Also check that in the Canvas Student app the video can play full-screen.  On Youtube, click the share button to copy the embed code for a video and then insert the embed code in your page.
  7. Documents - Use the built-in Accessibility Checker when creating Word documents.
  8. Math - Use the Canvas Math Editor or WIRIS app to generate equations and formulas.
  9. Assignments - Use rubrics and transparent assignment templates and techniques.

32 4 9,039

This release is mainly bug fixes for the migration scripts from 2.3.0.  Big thanks go to Santa Rosa Junior College for discovering and fixing most of these.

Existing Installations

If you previously installed version 2.3.0, you will need to perform the following actions manually:

  • In the reports table, add a report_json field of type MEDIUMTEXT if it does not already exist. If it already exists, change the type to MEDIUMTEXT
  • In the job_queue table, make sure the results field is of type MEDIUMTEXT

If you are upgrading from an existing installation (including 2.3.0), follow these instructions:

  • Test in a development or QA environment, not on production.
  • Update your localConfig.php file to include new fields from localConfig.template.php
  • Back up your database and run
    php composer.phar migrate


  • Fixed bug where $oauth2_id was sent in place of $oauth2_uri during the setupOauth call.
  • Fixed bug where null or empty scan_results were not handled properly.
  • Fixed bug where empty canvas_url fields in the user table were never updated with the proper value.
  • Fixed bug where null values in table row child nodes were not handled properly.
  • Fixed bug with migration scripts where the report_json column was never added to self-hosted instances.
  • Added status messages to migration scripts to help with debugging in the future.
  • Added mobile verbiage to the unscannable suggestion in localConfig.

For more information, and to download the latest release, visit the v2.3.1 Release Notes.

3 4 522

Note: There is a known issue with the self-hosted version of this release.  If you are using Heroku, you can safely ignore this message.  View the UDOIT FAILED TO SCAN THIS COURSE thread for more information.  This issue will be fixed in 2.3.1.  For now, we recommend waiting until the next release to upgrade.

This release was mostly an overhaul of the backend with a few visual tweaks here and there.  You might not notice the changes, but they were sorely needed.  As always, if you have any issues, please comment on this blog post so that we can keep everything in one place.

Important Note:  If you are upgrading from an existing installation, there are some specific instructions you need to follow.  Refer to the  full release notes.


  • Added support for PHP7 while maintaining backwards compatibility.
  • Enabled usage of a background worker with Heroku, fixing timeout issues and allowing for scalibility on that platform. #292
  • Added version number to the top-right of the banner.
  • Fixed "double scrollbar" issue by making the iFrame height dynamic.
  • Fixed a bug where UFIXIT would stop working an hour after your scan was started.
  • Replaced the UDOIT graphic with an SVG for higher quality and scalability.

Read the full release notes for more information and installation/upgrade instructions.

The UDOIT team wishes everyone a safe and happy holiday!

5 0 1,158
Lamplighter II

When you create content for your course it is important to make sure you are structuring content in accessible way. The list feature in the rich content editor in Canvas has options for creating unordered and ordered lists. The unordered list is for organizing lists of similar content where as the ordered list option is for organizing tasks that should be completed in specific order. 

Example an Unordered (Bullet) List

In this example I created a list of dog breeds. In the rich content editor select the items you wish to create a list and then in the toolbar select unordered list item option. 


  • Akita
  • Doberman Pinscher
  • Boxer
  • Great Dane

Example of an Unordered List with Indenting List Items

Lists can also be nested using the indent option in the rich content editor toolbar. Select the list items you wish to indent and select the indent option in the toolbar. The bullet style will be different for the indented items. 


  • Working Dogs
    • Akita
    • Doberman Pinscher
    • Boxer
    • Great Dane
  • Toy Dogs
    • Miniature Poodle
    • Yorkshire Terrier
    • Miniature Schnauzer 

Example an Ordered (Numbered) List

In this example I created a list of instructions for assignment. In the rich content editor select the items you wish to create a list and then in the toolbar select the ordered list item option. 


  1. Read the following article from the Illinois Online Network website: What Makes a Successful Online Student.
  2. Create a message and answer the following questions: What are your role priorities (student, parent, child, worker, friend, etc)? and How will being an online student fit with your other responsibilities?
  3. Now that you have completed this course what advice would you give to students who are new to taking courses online? 

Example of an Ordered List with Indenting List Items

In this example we are going to create a ordered list with nested items. In this list we are going to display the questions on separate lines and nest them under number 2. Place the cursor before the first question and hit the enter key to create a new line in the list. Repeat this process for the second question. Select the list items you wish to indent and select the indent option in the toolbar. The nested items will also have numbering; however, you can change by switching to the HTML View and changing the code just a bit. 

  1. Read the following article from the Illinois Online Network website: What Makes a Successful Online Student.
  2. Create a message and answer the following questions: 
    1. What are your role priorities (student, parent, child, worker, friend, etc)? 
    2. How will being an online student fit with your other responsibilities?
  3. Now that you have completed this course what advice would you give to students who are new to taking courses online? 

How to Change the Nested List Numbering

In the rich content editor switch to HTML View. In the code find the nested list. In the example below it is line 4. Place the cursor inside the LI element tag and hit the space bar. Then type the following text to create the attribute for ordered list item (type="a").  There are other attributes you can apply. See this reference guide from HTML Dog. 

<li>Read the following article from the Illinois Online Network website: <strong><a href="">What Makes a Successful Online Student</a>.</strong></li>
<li>Create a message and answer the following questions:
<ol type="a">
<li>What are your role priorities (student, parent, child, worker, friend, etc)?</li>
<li>How will being an online student fit with your other responsibilities?</li>
<li>Now that you have completed this course what advice would you give to students who are new to taking courses online? </li>

(Bonus) Other List Options

There is another list option called the definition list option. This list option is useful for glossary terms. It is important to note this list option is not available as an option from rich content editor toolbar and you will need to edit the HTML code on the page. Below is example of how to write the code. Refer to the resource list below for more details on how to write a definition list. 

<dd>three-dimensional; used commonly in computer animation, virtual reality, etc.</dd>
<dd>Not Found error message; a HTTP standard response code, in computer network communications, to indicate that the client was able to communicate with a given server, but the server could not find what was requested</dd>

Additional Resources

7 1 3,620
Learner II

The following is a blog post version of a presentation I gave at Instructurcon 2017 titled, “Mission Possible: Accessible Course Materials." Video available below, additional resources available at the bottom.

This video has been captioned. You can also download the transcript and follow the discussion on captioning conference videos here.  


I am confident that no one has all of this accessibility puzzle figured out, but if you take some time to get to know people in the Canvas Accessibility Community there are individuals with a lot of pieces of the puzzle.

At Utah State University (USU) we have been working on providing more inclusive online course experiences and ensure we are meeting the requirements of a recently approved campus Electronic and Information Technology Accessibility Policy. Canvas does great work towards making the core functionality of Canvas accessibility. Here we are going to focus more on accessible content, the stuff added by an instructor or course designer.

If you are brand new to accessibility or a long-time disability advocate, right now is an incredible time to be a part of this discussion on inclusive educational experiences. Before we get into the what and how of accessibility let’s spend just a moment discussing the why of accessibility.

Why Accessibility?

There are increasingly legal reasons to care about accessibility. However, there is so much more to accessibility beyond consideration of any legal risk. Great accessibility means greater usability and more usable course materials are more learnable for all students. Making sure your content is accessible provides a more inclusive experience for students with disabilities, second language learners and other nontraditional learners. Everyone benefits from more accessible content.

The discussion used to be around why you would take the time and effort to make your content accessible. Increasingly it feels like that question is changing towhy on earth you wouldn’t make your online course materials accessible. Especially with the availability of some of the incredible tools we willlook at below.

Man with backpack on a trail starting on a journey

If you are new to accessibility and start to feel overwhelmed, take a deep breath and remember that accessibility is a journey. It is much more important to get started than to nail down your destination. There is always more to do when it comes to accessibility, but there is also always something you can do today to make your content more accessible.

HTML Content vs File Content

As we talk about course content I want to make sure we are on the same page. There is an important distinction with how these tools treat native HTML content and file content.

  1. HTML Content. When I talk about HTML content I am referring to content that is entered through the WYSIWYG editor that shows up natively in the browser.
  2. File Content. When I talk about file content I am referring to files uploaded to a course such as PDF, Word,or PowerPoint.
  3. Media. Media such as images and video can be present in both HTML and File content.

It is important that we consider both HTML content and File content when looking at accessibility.At Utah State we recently did a quick audit on the type of content in our courses for one semester and found that we had:

  • 101,160 pages of HTML content.
  • 171,433 uploaded files.

If you ignore either type of content a significant portions of your course experiences may not be accessible.

Overview of the Tools

Now let’s look at some tools. All of these tools are different and the goal is not to determine which tool is best but rather to share what each does to help you determine how they might support your accessibility goals.

Design Tools from CIDI Labs

Design Tools (also known as Kennethware) is a commercial product that provides a suite of tools to help with course development. It includes a set of tools to help course developers make their HTML content is accessible at a page level as it is developed.

UDOIT from the University of Central Florida

The Universal Design Online Content Inspection Tool checks the accessibility of your HTML content across a entire course. UDOIT is open source, you can download it today for free and all you have to pay for is the hosting.

Ally from Blackboard

Ally started out as a tool developed for Canvas but was purchased by Blackboard and how supports multiple learning management systems. Ally is a commercial product that looks at the accessibility of course files on a single page, across an entire course or across all of your courses.


General Features

Comparison of General Features of Each Tool
Design ToolsUDOITAlly
PricingCommercialOpen-source, Self-hostedCommercial
Type of Content CheckedHTML ContentHTML ContentFile Content (HTML Content Coming)
Scope of ChecksPage LevelCourse LevelInstitution, Course Level, Page Level

Specific Checks Done by Each Tool

Accessibility Checks Done by Each Tool
Design ToolsUDOITAlly
  • Heading Structure
  • Alt Text
  • Accessible Tables
  • Color Contrast
  • Descriptive Links
  • Heading Structure
  • Alt Text
  • Accessible Tables
  • Color Contrast
  • Descriptive Links
  • Video Captions (YouTube)
  • Heading Structure
  • Alt Text
  • Accessible Tables
  • Color Contrast
  • Descriptive Links
  • Untagged PDF
  • Scanned Documents
  • Document Langage
  • Missing Titles
  • Images that may induce seizures

That's it for now, feel free to look at the slides or watch the video for additional screenshots and explanations of how each tool works. If you have thoughts, feedback or experience with any of the tools please leave a comment below! 

Additional Resources

  1. Mission Possible: Accessible Course Materials PowerPoint Presentation
  2. Presentation Video in the Canvas Community (Thanks awilliams!)
  3. Canvas Accessibility Group (join and participate!)
  4. ATHEN Canvas Accessibility Working Group (Contact Terrill Thompson to join)
  5. Instructional Design Strategies to Make Content Accessible in Canvas by‌ from Instructurcon 2017


This post will be updated as new information becomes available.

21 7 5,278
Community Member

   I'll be honest.  I love technology.  But I feel like I am fighting a losing battle sometimes in implementing it in my school.  I am not resistant - just easily broken.  I have 75 minutes to teach my students for an End-of-Grade Standardized Test.  I have so much content to cover, I sometimes give up easily when it comes to the frustrations of technology.  I need to teach, and it the technology is too much, that is the first thing that gets dropped from the plans.

   So, why am I here?  I've fought the system for several years.  I am a Google Suites junkie.  If Google makes it, it is gold to me.  I've used Google Tools for YEARS to get by.  Google Classroom.  Google Sites.  Google Drive.  PURE gold.  My district says Canvas, Canvas, Canvas.  Ok, I'll give it a go....but where am I even supposed to begin?  This isn't seamless.  It makes no sense.  What's a QTI file?

   If you're anything like me, listen up.  Canvas and Google are BFFs.  No...seriously.  I've been taught approximately three hours of Canvas in a course, and I've already texted my teacher friends to tell them how awesome Canvas is and how they can still use all their Google stuff, but without the gazillion files they're going to get submitted to their Drive from Google Classroom.  If you've not been blessed with this life-changing knowledge, then listen up.


   You heard me.  You can link your Google to Canvas.  Google Slides Presentations? Absolutely.  Google Docs?  You bet.  And the best part?  It AUTOMATICALLY updates in Canvas when you update in Google. So, if you're brand new to actually giving Canvas a try, like me, let me tell you the one tiny step you need to know in order to be able to make your life full of Google/Canvas magic.  See the magical little V that I boxed in with red below?


   If you hover over that, it will say "More External Tools" - and once you do that, you will select Google Apps.  Then, you just link your own Google Drive to Canvas, and you can add anything.


   Guys, my life is made.  All is right with the world.  Most of you are probably Canvas genius users and already know this, and that's awesome.  I, however, am just now getting my feet wet with Canvas, and I am much more excited to keep learning now that I've learned all of my Google stuff that I've treasured for years and years can be used within Google.  

   And bonus...I can grade Google assignments IN Canvas once they're set up the right way...which means I can link it to the grade book automatically, too. 

   I think I'm finally coming around to the dark side of Canvas, and I can't wait to keep building, learning, growing, and leading through the use of all this wonderful technology.

3 0 163

This release contains many bug fixes, improvements on existing features, mobile-inspired issue detection, and better compatibility with Heroku. This release also begins our new naming scheme, which is based on small towns and areas in Central Florida.

Important Note:  If you are upgrading from an existing installation, there are some specific instructions you need to follow.  Refer to the full release notes.


  • Old reports are now stored in the database.  This means that UDOIT will work in environments where file storage is not persistent such as Heroku.
  • Fixed a bug with YouTube caption detection that wrongly flagged videos with parameters in the URL.  (Thanks‌!)
  • Removed requirement for Bower and NPM, making self-hosted installation WAY easier!
  • Added the option to remove color from text emphasized with only color.
  • Added "lighten" and "darken" options to color contrast U FIX IT.
  • Added configurable text to "unscannable" section that suggests converting the files to Pages.
  • Added file size warning for "unscannable" files larger than 50mb
  • Added configurable suggestion for single content items longer than 3000 words.
  • Rewrote much of the color contrast U FIX IT for better reliability.
  • Added more installation instructions, troubleshooting guides, and awards to the README.
  • Re-enabled detection for object tags, since they are still allowed in HTML files.
  • Created the Contributor's Guide.

Read the full release notes for more information and installation/upgrade instructions.

5 0 292

As a product manager at Canvas, I am impressed by the dedication to creating accessible experiences that our designers and engineers craft every day. That's why I'm excited about our most recent update, DocViewer.

In late May we released DocViewer in Free-for-Teacher (FFT) and Beta environments, with minimal accessibility included, similar to what one would see in all other document viewing and annotation applications. This release enabled us to get feedback and receive any bug reports before transitioning to Canvas production.

On Friday, June 16, DocViewer released improved accessibility functionality that enables students to access annotations and comments with a screen reader, including information about the annotation type, author name, comment, and any reply comments at the end of the document. This release makes Canvas the first accessible annotation and document viewing service available.

The release of this functionality is only the first step of a larger goal to create an exceptional feedback experience that is accessible for all Canvas users. DocViewer will continue to improve with in-document annotations and accessible author-created annotations as next steps.

I look forward to reading your suggestions and feedback as we build these accessible experiences. Together we are ensuring that the right to learn is available for all.

12 1 1,390