medialize / medialize/ally.js

Provide jQuery plugin, wrapping ally.js components

Open
#57 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

integration
Dominant language
JavaScript
Stars
1.6k
Forks
82
PR merge metrics
No merged PRs in 30d

Description

Considering how DOM centric ally.js is it makes sense to provide a wrapper to expose our components as jQuery functions.

This does not mean that ally.js will or should use jQuery internally, i.e. import jQuery as a dependency.

I've created this issue to discuss how a jquery.ally.js plugin could look like.


  • The ally.is.* methods would probably be exposed as Sizzle extensions as discussed in #41. We could overwrite :disabled, but should probably not mess with :visible.
  • Because of the Sizzle extensions, ally.query.* is mostly covered. ally.query.firstTabbable might either be also exposed as sizzle extension or simply put on $.fn
  • The ally.element.* methods are probably best exposed via the internal extension points $.propHooks and $.attrHooks as explained by jQuery Hooks
  • jQuery Event Extensions might be the way to expose the ally.event.* components
  • The ally.get.* methods likely simply go on $.fn
  • I have no idea how the services (e.g. ally.maintain.disabled) should be exposed

Plugin integrations should not be maintained in the ally.js repository. Each plugin should be its own project (as it will likely have to load a bunch of non-ally things for tests etc)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposed mappings for ally.is, ally.query, ally.element, ally.event, ally.get, and services against the linked Sizzle and jQuery extension documentation. No repository files or tests are named; done would be a separately maintained jQuery plugin project with an agreed integration design.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, jquery
Domain
accessibility, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.