Skip to content
NEWSADA Title II web deadlines: April 24, 2026 (50k+ pop) · April 26, 2027 (under 50k) — Is your site compliant?ADA Title II: April 2026 & 2027 deadlinesLearn more →

Canvas LTI

Note
This integration requires an Angstroma Enterprise plan and Canvas Admin access to register Developer Keys.

Angstroma integrates with Canvas LMS via LTI 1.3 — the current IMS Global standard for external tool integrations. Once installed, every student in the course sees an Accessibility Tools link in the course navigation that loads their personal accessibility toolbar inside Canvas.

How it works

  1. Canvas sends a signed LTI launch JWT to Angstroma when a student opens the tool
  2. Angstroma validates the JWT and extracts the Canvas user ID and course context
  3. The student's accessibility profile is loaded and features applied in the Canvas iframe
  4. Feature usage is logged back to your Angstroma analytics

Step 1 — Register in Canvas Admin

Go to Canvas Admin → Developer Keys → Add Developer Key → Add LTI Key and fill in the following values:

FieldValue
Redirect URIshttps://api.angstroma.com/api/lti/launch
Target Link URIhttps://api.angstroma.com/api/lti/launch
OpenID Connect Initiation URLhttps://api.angstroma.com/api/lti/login
JWK MethodPublic JWK URL
Public JWK URLhttps://api.angstroma.com/api/lti/jwks

After saving, enable the Developer Key and note the Client ID — you'll need it in the next step.

Step 2 — Configure your Angstroma account

In the Angstroma Portal, go to Settings → Integrations → Canvas LTI and enter:

  • Your Canvas platform URL (e.g. https://school.instructure.com)
  • The Client ID from step 1
  • The Deployment ID (from Canvas after adding the tool to an account/course)

Step 3 — Install in Canvas

After enabling the Developer Key, add the tool to an account or course:

  • Go to Account/Course Settings → Apps → +App
  • Select By Client ID
  • Enter the Client ID and click Submit

Students will see Accessibility Tools in course navigation.

LTI configuration reference

The full LTI 1.3 tool configuration in Canvas JSON format:

lti-config.json
{
  "title": "Angstroma Accessibility",
  "description": "WCAG 2.2 accessibility tools — reading mask, text-to-speech, dyslexia font, high contrast, AI hints, and 20+ more features for students with disabilities.",
  "oidc_initiation_url": "https://api.angstroma.com/api/lti/login",
  "target_link_uri": "https://api.angstroma.com/api/lti/launch",
  "scopes": ["https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly"],
  "extensions": [
    {
      "platform": "canvas.instructure.com",
      "privacy_level": "public",
      "settings": {
        "placements": [
          {
            "placement": "course_navigation",
            "message_type": "LtiResourceLinkRequest",
            "text": "Accessibility Tools",
            "icon_url": "https://cdn.angstroma.com/icon-32.png",
            "enabled": true
          },
          {
            "placement": "global_navigation",
            "message_type": "LtiResourceLinkRequest",
            "text": "Accessibility",
            "icon_url": "https://cdn.angstroma.com/icon-32.png",
            "enabled": true
          }
        ]
      }
    }
  ],
  "public_jwk_url": "https://api.angstroma.com/api/lti/jwks",
  "custom_fields": {
    "canvas_user_id": "$Canvas.user.id",
    "canvas_user_login_id": "$Canvas.user.loginId",
    "canvas_course_id": "$Canvas.course.id",
    "canvas_course_name": "$Canvas.course.name"
  }
}
Warning
Privacy is set to public so Canvas includes the user ID with each launch. Canvas may also send name, email, and course context — Angstroma discards those fields at the ingestion boundary and stores only the opaque Canvas user ID as the external student identifier. No student names, emails, or course metadata are persisted. See our Privacy Policy §12 and FERPA page for full data handling.
Important
Schools / Enterprise plan required. The LTI 1.3 integration is gated to the Schools and Enterprise tiers and activates only after a signed Data Processing Agreement is on file. Attempts to launch without an active DPA return a 403 with the controlling FERPA / COPPA citation. See the Schools overview.