Skip to the install button
Technology Consigliere Canvas tools for teachers

Canvas quiz accommodations

A browser tool for your own Canvas courses. It runs inside a Canvas tab you are already signed in to, using your own account and your own permissions. No tokens, nothing to install.

Beta

Install it

  1. Show your bookmarks bar. Press Ctrl + Shift + B, or Cmd + Shift + B on a Mac.
  2. Drag the blue button below up onto that bar. That's the whole install.
Quiz accommodations

Clicking it here will not do anything useful. It only works from inside one of your Canvas courses.

Can't drag it? Install it another way

Right-click your bookmarks bar, choose Add page in Chrome or Add Bookmark in Firefox, name it, and paste the contents of teacher/accommodation.bookmarklet.txt into the URL field.

Version
0.4.1, beta
Runs on
any page inside one of your Canvas courses
Needs
a role that can moderate quizzes, which teachers have by default
Quizzes
Classic Quizzes only
Last tested
7 October 2026, Chrome

Canvas makes you set accommodations one quiz at a time. Open the quiz, click Moderate This Quiz, find the student, click the pencil, type a number, save. Then do it again for the next quiz. A student with time and a half in a course with 12 quizzes means 12 trips through that sequence, and the number is different every time.

This opens a panel listing your students and your quizzes. Pick a student, choose 50% or 100% additional time and whether they get an extra attempt, and see exactly what would change on every quiz before anything is written.

The arithmetic it does for you

An accommodation letter says "time and a half." Canvas asks for a number of minutes. Those are not the same thing, and the gap is where mistakes live. A 30-minute quiz needs 15 minutes added. A 50-minute midterm needs 25. A two-hour final needs 60. Typing the same number into all three either shortchanges the student on the long exams or hands them more than the letter allows on the short ones.

The panel reads each quiz's own time limit and works out the right number for that quiz. You choose the percentage once.

What it will not do

It never lowers an accommodation. If a student already has more extra time than your selection would give them, the panel says so and leaves the larger grant alone.

It never writes without showing you first. Preview is a separate step from Apply, and Apply asks you to confirm. Every change is read back from Canvas afterward to confirm it saved, and anything that did not is marked.

It never changes dates for the rest of your class. Extra time is worthless if the quiz closes before the student can use it, so the panel checks each student's availability window and tells you when it is too short. If you choose to fix it, Canvas records that as an exception for that one student. Everyone else's dates stay exactly as you set them.

What it hands back to you

Quizzes assigned to specific sections or groups, quizzes where a student shares a date exception with someone else, and ungraded surveys all get flagged for you to handle on the quiz's own page. The tool would have to guess, so it does not.

A quiz a student is actively taking right now gets skipped, with a note. Run it again once they submit.

Permissions and privacy

Running JavaScript somebody else wrote, inside a session you are signed in to, deserves a straight answer rather than reassurance. Here is what is actually true.

  • It runs in your own Canvas session. It uses the session you are already signed in with. No tokens, no accounts, nothing to generate, store, or remember to revoke.
  • It sees only what your role can see. It calls the same Canvas API your account already uses, as you. I tested this directly by running a related tool from three different Canvas roles: each one got back exactly what that role can see in Canvas, and was cleanly refused everything else. If your role cannot moderate quizzes, neither can this.
  • It stores nothing. Nothing is saved in your browser and nothing is logged. Every request goes to the address already in your browser's address bar, read at runtime from location.origin. There is nowhere else for it to go.
  • No remote code. The whole program lives in the bookmark. No eval, no injected <script>, nothing fetched when you click it.

The readable source lives in teacher/accommodation_src.js. The bookmark is that same file, encoded.

One known rough edge

This panel styles itself with a stylesheet, unlike the admin tools on this site. If your institution runs a strict Content Security Policy, that stylesheet gets blocked and the panel appears unstyled. It still works and the numbers are still right, it just looks rough. Tell me if you hit this and I will know it is worth fixing properly.

When it breaks

Instructure ships to production every few weeks, and API behavior changes. If this stops working, or does something you did not expect, open an issue with your browser and whatever the panel said.

During the beta I especially want to hear about anything that looked wrong in the preview, even if you never clicked Apply. A preview that disagrees with what you see on the Moderate page is exactly the report I need.

Page look out of date? GitHub can keep showing an older copy for a few minutes after an update. Hard-refresh with Ctrl + Shift + R, or Cmd + Shift + R on a Mac.

Already installed? Your bookmark keeps the version you dragged. To update, drag the new button to your bar and delete the old one.

Quiz accommodations 0.4.1, beta. What changed.

License: MIT. Free to use, change, and share, with credit. Full license.