# medialize/ally.js

JavaScript library to help modern web applications with accessibility concerns

Repository: https://github.com/medialize/ally.js
Canonical: https://ross.abutalabs.com/products/allyjs
Homepage: http://allyjs.io/
Language: JavaScript
License: MIT
License Family: permissive
Topics: accessibility, a11y, javascript, focus, keyboard, keyboard-navigation
Last push: 2024-02-16T04:25:09+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4333, "days_push": 929, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1552, forks 82 (observed 2026-08-28T04:05:02.746283+00:00)

## What it is
ally.js is a JavaScript library that simplifies accessibility concerns in modern web applications, providing APIs for focus management, keyboard navigation, and inert DOM subtrees. It abstracts away browser inconsistencies around focusable and tabbable elements so developers can build accessible UIs like modal dialogs more easily.

## Use cases
- trap keyboard focus inside a modal dialog
- find all focusable or tabbable elements in the DOM
- make background content inert while a menu is open
- determine whether focus came from keyboard, mouse, or script for styling
- handle focus within Shadow DOM
- polyfill :focus-within selector
- fix browser-specific pointer focus bugs

## When to avoid
- your framework (e.g. React Aria, Radix) already provides focus management utilities
- you expect the library to make your app accessible automatically - it only provides building blocks
- you need actively developed support for the latest browser features - the project is in maintenance mode

## Facets
- artifact type: library
- maturity: maintenance
- function: ui-components, developer-tools
- domain: accessibility, web-development, frontend
- platform: browser, cross-platform
- tags: a11y, focus-management, keyboard-navigation, focus-trap, shadow-dom, modal-dialogs, nodejs

## Member repositories
- medialize/ally.js (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:02.746283+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:30:12.629809+00:00, confidence not recorded.
  - readme: https://github.com/medialize/ally.js (fetched 2026-08-28T04:05:02.746283+00:00, sha 9c959829ab06)
  - homepage: http://allyjs.io/ (fetched 2026-08-29T11:31:03.130156+00:00, sha 87097b83d9f2)
  - site_page: https://allyjs.io/getting-started.html (fetched 2026-08-29T11:31:03.138948+00:00, sha 354a3035c808)
  - registry_npm: https://registry.npmjs.org/ally.js (fetched 2026-08-29T11:31:03.143127+00:00, sha fd421144f761)
  - site_page: https://allyjs.io/api/index.html (fetched 2026-08-29T11:31:03.141037+00:00, sha aca65736f4c6)
- Data as of 2026-08-30T08:39:29.467469+00:00.
