Skip to content

A curated calendar of digital accessibility conferences and events.

License

Notifications You must be signed in to change notification settings

eventua11y/eventua11y.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

754 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eventua11y

Eventua11y.com

Netlify Status

A curated list of digital accessibility events.

Accessibility

The goal is for each page of this website to meet the requirements of WCAG 2.2 Level AA. If you notice a problem, please report it or email help@eventua11y.com. See the full accessibility statement on the website.

Contributing

See the contributing guide for ways to get involved in this project, including some that don't require you to write a single line of code.

Technology

Frameworks and languages

  • Astro -- the site framework, running in server-side rendering (SSR) mode
  • Vue -- interactive components hydrated on the client
  • TypeScript -- used throughout the project

UI and styling

  • Web Awesome -- web component library providing the core UI elements
  • Custom CSS with light and dark themes
  • PostCSS with Autoprefixer and cssnano

Data and APIs

  • Sanity -- real-time content database for events and books, edited in Sanity Studio
  • Netlify Edge Functions (Deno runtime) -- three API endpoints:
    • /api/get-events -- fetches events from Sanity with timezone-aware date processing
    • /api/get-books -- fetches book club books from Sanity
    • /api/get-user-info -- returns user timezone and geolocation data
  • Day.js -- date formatting and timezone conversion

Hosting and monitoring

  • Netlify -- hosting with automatic deploys from the main branch. Feature branches are deployed to preview URLs.
  • Sentry -- error tracking and performance monitoring

Testing

  • Playwright -- end-to-end and accessibility tests
  • axe-core -- automated WCAG 2.2 AA scans on every page as a foundation, with Playwright assertions layered on top for accessible names, landmarks, heading hierarchy, and ARIA states that axe cannot catch
  • Vitest -- unit tests

Code quality

  • ESLint -- linting with plugins for Astro, Vue, TypeScript, Playwright, and jsx-a11y
  • Prettier -- code formatting

Development

Prerequisites

Environment variables

The edge functions require the following environment variables, configured in Netlify:

Variable Description
SANITY_PROJECT Sanity project ID
SANITY_DATASET Sanity dataset name
SANITY_API_VERSION Sanity API version
SANITY_CDN Whether to use the Sanity CDN (true/false)
SENTRY_AUTH_TOKEN Sentry auth token (used during build for source map uploads)

Getting started

npm install

To run the dev server with Prettier and ESLint watching for changes:

npm run dev

Or to run just the Astro dev server:

npm start

To run locally with Netlify Edge Functions, use the Netlify CLI:

npx netlify dev

Running tests

# End-to-end tests (Playwright)
npm test

# Unit tests (Vitest)
npm run test:unit

# Unit tests in watch mode
npm run test:unit:watch

Building

npm run build

This runs Prettier/ESLint checks, builds the Astro site, and uploads source maps to Sentry.

CI/CD

Pull requests trigger a GitHub Actions workflow that runs unit tests and end-to-end tests against Netlify deploy previews. An additional workflow checks for missing alt text on images.

Dependency updates are managed by Dependabot.

License

MIT

About

A curated calendar of digital accessibility conferences and events.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors