A CSS stylesheet to quickly highlight a11y concerns.

Overview

Checka11y.css logo

Buy Me A Coffee Checka11y.css - A CSS stylesheet to quickly highlight a11y concerns. | Product Hunt

.github/workflows/pipeline.yml

MIT License Brotli size

GitHub stars GitHub release (latest by date) npm jsDelivr hits (npm)

Chrome Web Store Mozilla Add-on


Checka11y.css

A CSS stylesheet to quickly highlight a11y concerns.

LightweightModernAccessibileCustomisableSimple

The first line of defence for testing accessibility.

Designed to quickly highlight some common accessibility errors and warnings that can be easily and quickly rectified.

Recommended before turning to automation tools and scanners such as Lighthouse on Chrome.

Remember not to push this to production!

A great tool for:

  • Websites and web applications to begin improving their accessibility.
  • Developers and testers/QA to learn more about accessibility and creating accessible websites and applications.

Features

Our features are always checked against the W3C accessibility guidelines.

A list of some common a11y concerns Checka11y.css will check for and highlight :

  • Check for invalid HTML elements nested inside of <a> and <button>
  • Check for missing alt attributes on images
  • Check for media that is set to autoplay
  • Check <li> is the only direct child of <ol> and <ul>
  • Check for programmable-only tabindex attributes on invalid HTML elements

See a full list of features here.

Other features:

  • Clear a11y errors and warnings with informative messages and error codes (see codes.md for more details on the specific errors & warnings)
  • Options to import via CDN, npm or yarn
  • Customise the error and warning colors
  • No dependencies
  • Also available on the Chrome Web Store and as a Firefox add-on (click here to view GitHub project)

Error/Warning Codes

When using Checka11y.css, you will notice some codes prefixed with either "E" or "W". E.g.

E0006 error code for HTML element without a lang attribute

If you wanted more details on this error and how to resolve it, you can reference the codes.md file and find the code "E0006".


Usage

Read our migration guide on migrating from v1 to v2.

CDN

In the below CDN links:

  • Replace :version with a version listed here (latest version is always recommended). If you always want to get the latest stylesheet, remove @:version completely (Not recommended).
  • Replace :stylesheet with one of the listed stylesheets below:
    • checka11y.css (errors & warnings, recommended)
    • checka11y.min.css (minified errors & warnings, recommended)
    • checka11y-errors.css (errors only)
    • checka11y-errors.min.css (minified errors only)
    • checka11y-warnings.css (errors only)
    • checka11y-warnings.min.css (minified errors only)
<!-- HTML -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/checka11y-css@:version/:stylesheet" />
/* CSS */
@import url('https://cdn.jsdelivr.net/npm/checka11y-css@:version/:stylesheet');

Package manager (npm or yarn)

It is best practice to install Checka11y.css as a dev dependency rather than a dependency and ensure you only use it in your local/developer environment (do not push this stylesheet to your production environment). You can install checka11y-css via npm or yarn.

First install via npm

npm install checka11y-css --save-dev

Or install via yarn

yarn add --dev checka11y-css

Then import into your JavaScript

import 'checka11y-css';

Or import the SCSS or CSS into your Sass/SCSS In the below imports, replace :file with one of the options below:

  • Errors & warnings (recommended)
    • src/checka11y (.scss file)
    • checka11y.css (.css file)
  • src/errors/checka11y-errors (errors only)
  • src/warnings/checka11y-warnings (warnings only)

Use as a Sass module (recommended):

/* Webpack */
@use '~checka11y-css/:file' as *;

/* Non-webpack */
@use 'path/to/node_modules/checka11y-css/:file' as *;

Import generally (not recommended, read why):

/* Webpack */
@import '~checka11y-css/:file';

/* Non-webpack */
@import 'path/to/node_modules/checka11y-css/:file';

Using Angular?

👉 Go to ngx-checka11y


Why is accessibility important?

Accessibility is important to ensure your website or web application is accessible to as many users and types of users you can cater for.

Often, we can improve the accessibility on our websites and web applications by focusing on the obvious first - these are small quick wins that are easy to implement or rectify and may not require a lot of time investment.

Checka11y.css will instantly highlight as many HTML validity and HTML semantic errors and warnings as we can, to help you to improve your website or web application.

Click here to read more about web accessibility.


License

Type - MIT

Read license

You have the right to use this library in any project FREE of charge for personal and commercial use.

Commercial use should consider a small donation on Buy Me a Coffee.

You do not have the right to resell, sublicense or redistribute (even for free) this library.

Checka11y.css is licensed under MIT. As a minimum, you are required to KEEP AND NOT REMOVE the following code at the beginning of your downloaded/installed Checka11y.css CSS, where :version is replaced with the version number you are using:

/*! Checka11y.css v:version | MIT License | github.com/jackdomleo7/Checka11y.css */

Contributing

This project uses npm ≥ 8 and Node ≥ 16 - however any project using this package does not need these versions, they can use any version of npm & Node.

  1. Read CONTRIBUTING guidelines
  2. git clone https://github.com/jackdomleo7/Checka11y.css.git or fork the repo
  3. cd Checka11y.css
  4. npm i
  5. Edit src/**/*.scss and run npm run build in the root of the project to regenerate the CSS found at /checka11y.css (DO NOT edit this file directly).
  6. To add error/warning styles and messages to your features, @extend one of the placeholders and @include contentMessage() from src/_base.scss.
  7. Add tests to your features in cypress folder (edit the element file or create a new one if needed)
  8. Run tests: npm run test:ui or npm run test (headless)
  • You can also run tests for a specific tag/attribute by doing npm run test -- --spec cypress/integration/{file-to-test}
  1. Add the feature to the features.md & codes.md with a new error or warning code

Comments
  • Warn when using onclick on non-clickable elements

    Warn when using onclick on non-clickable elements

    Describe the new a11y feature or project enhancement

    I see this quite often in code bases, where devs will attach an onclick to some div or span and call it a day. This breaks keyboard navigation. Worse...sometimes there are onclick handlers that will just navigate the user to another page. This specifically fails Success Criterion 1.3.1 and 2.1.1.

    Describe the solution you'd like

    I quickly mocked this up in codepen: https://codepen.io/tricinel/pen/VwjZEPK.

    I'm not sure if we should be that aggressive and ban all elements except buttons and anchor tags.

    Link(s)

    https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/F42

    a11y feature Hacktoberfest 
    opened by tricinel 22
  • Migrate from @import to @use at-rules

    Migrate from @import to @use at-rules

    Migrates all @import at-rules to @use in preparation for dart-sass deprecating @import at-rules.

    Note: There are still 4 @import at-rules left in two files (README.md and test/index.css) in the project. But we can discuss converting these or leaving them during review. We started out at 41 @import results in 5 files and took it down to 4 results in 2 files which is exciting!

    Types of changes

    • [ ] Bug fix (a non-breaking change which fixes an issue)
    • [x] New feature (a non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Description

    Resolves #123

    Replaces all existing @import at-rules with @use because @import will eventually be deprecated in dart-sass in the coming years.

    Link(s)

    Screenshot(s)

    Checklist:

    • [x] I have thoroughly read the CONTRIBUTING guidelines.
    • [x] I understand my pull request will be thoroughly reviewed at high detail.
    • [x] I understand the work in my pull request will only be available in the next version release of Checka11y.css and not in the current version release.
    • [x] I confirm the work in this pull request is valid according to my findings and is not something for anything personal.
    • [x] I have updated the README and/or features.md where and if applicable (still put an x if you have considered this but thought there was nothing to add or modify).
    • [x] I have added myself to the contributors section in package.json (still put an x if you have considered this but decided not to add yourself).
    • [x] I have checked I have not committed any accidental files.
    • [x] I have tested all the main modern browsers (I.e. Chrome, Firefox, Edge, Safari - please leave this unchecked if there were any browsers listed you could not test and list them in the help section with details why you couldn't test that browser)
    • [x] I have run the automated tests and added new ones to cover new code.
    • [x] All new and existing a11y checks still work correctly (compare your local test/index.html to the test/index.html in the master branch).
    project enhancement Hacktoberfest 
    opened by tannerdolby 14
  • Improve speed of tests

    Improve speed of tests

    Describe the new a11y feature or project enhancement

    The Cypress tests can take up to 2 minutes to run, which uses up minutes and storage in the GitHub workflow. The tests are extremely simple, so can we find a way to make the tests a lot quicker? I.e. Could we change to Jest?

    Describe the solution you'd like

    Tests to runner quicker. Anything is an improvement.

    Link(s)

    • https://github.com/jackdomleo7/Checka11y.css/actions/workflows/Tests.yml
    project enhancement 
    opened by jackdomleo7 14
  • Check for correct order of heading tags

    Check for correct order of heading tags

    Headings should be in the correct order See here for more information.

    Skipping heading ranks can be confusing and should be avoided where possible

    For example, this is correct:

    <h1>This is a heading</h1>
    <h2>This is a subheading</h2>
    

    This is incorrect because it goes from h1 straight to h3 (skipping h2):

    <h1>This is a heading</h1>
    <h3>This is an h3 heading</h3>
    

    Not completely sure how this can be done with CSS. I have tried this

    h1+h3,
    h1+h4 {
        border: var(--checka11y-error-border-width, 5px) solid var(--checka11y-error-color, red) !important;
    }
    

    which checks if an h1 heading is followed by an h3 or h4 header. However, this doesn't take into account elements in between the headers. Any ideas welcome.

    a11y feature 
    opened by SavvasStephanides 14
  • Checks added for attribute

    Checks added for attribute "for" in label and for attribute "name" in input element

    Types of changes

    • [ ] Bug fix (a non-breaking change which fixes an issue)
    • [x] New feature (a non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Description

    1. Added check whether the "for" attribute is provided a non-empty value in a <label>.
    2. Added check whether the "for" attribute is provided a non-empty value in a <input>.

    Resolves: #7

    Screenshot(s)

    Screenshot (59)

    Checklist:

    • [x] I have thoroughly read the CONTRIBUTING guidelines.
    • [x] I understand my pull request will be thoroughly reviewed at high detail.
    • [x] I understand the work in my pull request will only be available in the next version release of Checka11y.css and not in the current version release.
    • [x] I confirm the work in this pull request is valid according to my findings and is not something for anything personal.
    • [ ] I have updated the README where and if applicable (still put an x if you have considered this but thought there was nothing to add or modify).
    • [x] I have added myself to the contributors section in package.json (still put an x if you have considered this but decided not to add yourself).
    • [x] I have checked I have not committed any accidental files.
    • [ ] I have tested all the main modern browsers (I.e. Chrome, Firefox, Edge, Safari - please leave this unchecked if there were any browsers listed you could not test and list them in the help section with details why you couldn't test that browser)
    • [ ] All new and existing a11y checks still work correctly (compare your local test/index.html to the test/index.html in the master branch).

    Help

    I could not test in Safari because I do not have access to an Apple device.

    a11y feature needs more info 
    opened by Being-Maverick 12
  • Images should have a meaningful alternative text

    Images should have a meaningful alternative text

    Describe the new a11y feature or project enhancement

    Images should nave a descriptive alternative text. Images in which the alternative text is "image" or "graphic" or a " " (blank space), are not providing enough information for assistive technologies.

    Describe the solution you'd like

    This one is tricky because it can be really language-dependant. The same word that works in English (image) may work in French (image) but not in Spanish (imagen) or German (bild). Also, images don't have ::before and ::after pseudo-elements to display the error.

    The language barrier is difficult to skip, the solution could include some common words in different languages that would trigger the rule, but having all of them may be complex. Some of them (e.g., a blank space). As for the highlight, the project could include an inline image in SVG or base64 with a message through the content property.

    Then the selector/rule could be something like this:

    image[alt=" "],
    image[alt="image"i],
    image[alt="graphic"i],
    image[alt="photo"i],
    image[alt="picture"i],
    ... {
      border: 4px solid red;
      content: url(path-to-error-image)
    }
    

    Link(s)

    a11y feature good first issue Hacktoberfest 
    opened by alvaromontoro 12
  • Buttons and links should have meaningful content

    Buttons and links should have meaningful content

    Describe the new a11y feature or project enhancement

    Buttons and links should contain something that indicates what they are or what they are going to go. Having an empty link, or a button that is only an image, or an empty input button without a value can be confusing and doesn't provide enough information for screen reader users.

    From WCAG 2.1 Success Criterion 2.4.4 Link Purpose (In Context): "The purpose of each link can be determined from the link text alone or from the link text together with its programmatically determined link context [...]."

    Describe the solution you'd like

    Verify that buttons and links follow some basic patterns:

    • They are not empty (e.g. using the :empty pseudo-class)
    • They don't contain just an image tag (e.g. using the :only-child pseudo-class)

    Link(s)

    a11y feature good first issue Hacktoberfest 
    opened by alvaromontoro 10
  • Link to potentially non-accessible document/app

    Link to potentially non-accessible document/app

    Describe the new a11y feature or project enhancement

    This is not an a11y mistake by itself, but it is something that I've seen in most accessibility checkers: showing a warning when there's a link to a Word, Excel, PowerPoint, or PDF document. Also, when there's a link to Youtube (because captioning is often missing or not well generated).

    Those documents often have accessibility issues and need to be created with accessibility in mind. Also, they may be loaded on the browser, but they require plugins/extensions that can create navigation difficulties.

    Describe the solution you'd like

    Show a warning about potential accessibility issues when:

    • A link to a PDF, Word, Excel, or PowerPoint document is present on the page.
    • A link to Youtube is present on the document.

    This can be done in CSS by checking the end of the URL looking for certain extensions (".pdf", ".doc", ".docx", ".xls", etc.), or the beginning of the URL looking for Youtube addresses ("https://youtu.be", "https://youtube.com", etc.)

    Link(s)

    • WebAIM Wave Guidelines (will link to Google Docs) <-- this list may be interesting to add more CSS-only features to Checka11y.css.
    a11y feature good first issue 
    opened by alvaromontoro 9
  • Check order headings

    Check order headings

    Add an error message if the heading levels are not in the right order. This solution combines the methods described in #13 to resolve that issue.

    Types of changes

    • [ ] Bug fix (a non-breaking change which fixes an issue)
    • [x] New feature (a non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Description

    Applied the selector described in the ticket, but soon found other cases in which it was insufficient, so I had to extend it (a lot). Also, included Una Kravets solution (linked in the ticket). Resolves #13.

    Link(s)

    Screenshot(s)

    Screen Shot 2020-11-19 at 11 50 50 PM

    Checklist:

    • [x] I have thoroughly read the CONTRIBUTING guidelines.
    • [x] I understand my pull request will be thoroughly reviewed at high detail.
    • [x] I understand the work in my pull request will only be available in the next version release of Checka11y.css and not in the current version release.
    • [x] I confirm the work in this pull request is valid according to my findings and is not something for anything personal.
    • [x] I have updated the README and/or features.md where and if applicable (still put an x if you have considered this but thought there was nothing to add or modify).
    • [x] I have added myself to the contributors section in package.json (still put an x if you have considered this but decided not to add yourself).
    • [x] I have checked I have not committed any accidental files.
    • [x] I have tested all the main modern browsers (I.e. Chrome, Firefox, Edge, Safari - please leave this unchecked if there were any browsers listed you could not test and list them in the help section with details why you couldn't test that browser)
    • [x] I have run the automated tests and added new ones to cover new code.
    • [x] All new and existing a11y checks still work correctly (compare your local test/index.html to the test/index.html in the master branch).

    Help

    Didn't test on IE.

    a11y feature 
    opened by alvaromontoro 8
  • Set up Cypress + initial tests

    Set up Cypress + initial tests

    • Add Cypress dependency
    • Generate automatic Cypress files
    • Add initial tests for accesskey, autoplay, button, and html
    • Update README with test information
    • Update .gitignore to remove Cypress videos

    Types of changes

    • [ ] Bug fix (a non-breaking change which fixes an issue)
    • [x] New feature (a non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Description

    This PR adds Cypress as a testing tool (as a devDependency). It also adds a few common functions and tests for 4 of the tests (accesskey, autoplay, button, and html).

    Resolves: #66

    How to test these changes:

    1. Install the new dependencies: npm i
    2. Build the library: npm run build
    3. Run the tests:
      • To open the tests in a browser: npm run cypress:open
      • To run the tests from the command line: npm run cypress:run

    Link(s)

    Screenshot(s)

    Result of running npm run cypress:run (headless):

    Cypress running on the command line (headless)

    Result of running npm run cypress:open:

    Cypress running on a browser

    Checklist:

    • [x] I have thoroughly read the CONTRIBUTING guidelines.
    • [x] I understand my pull request will be thoroughly reviewed at high detail.
    • [x] I understand the work in my pull request will only be available in the next version release of Checka11y.css and not in the current version release.
    • [x] I confirm the work in this pull request is valid according to my findings and is not something for anything personal.
    • [x] I have updated the README and/or features.md where and if applicable (still put an x if you have considered this but thought there was nothing to add or modify).
    • [x] I have added myself to the contributors section in package.json (still put an x if you have considered this but decided not to add yourself).
    • [x] I have checked I have not committed any accidental files.
    • [x] I have tested all the main modern browsers (I.e. Chrome, Firefox, Edge, Safari - please leave this unchecked if there were any browsers listed you could not test and list them in the help section with details why you couldn't test that browser)
    • [x] All new and existing a11y checks still work correctly (compare your local test/index.html to the test/index.html in the master branch).

    Help

    No a11y check changes, so didn't test those. It would be good to check how the tests are structured.

    It may be better to separate the tests in their own spec instead of all in a file. That way we could avoid merge conflicts too.

    Suggestions?

    project enhancement 
    opened by alvaromontoro 8
  • Improve errors with SCSS

    Improve errors with SCSS

    Types of changes

    • [ ] Bug fix (a non-breaking change which fixes an issue)
    • [x] New feature (a non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Description

    Branched from #26 and requesting merge back into #26.

    checka11y.css and checka11y.min.css are autogenerated.

    Implemented SCSS to allow for easier maintaining:

    • Installed stylelint-scss for SCSS linting
    • Separated each feature into it's own sub file
    • Udated README & CONTRIBUTING
    • Moved projects logos into their own logo directory
    • Created minified version of the stylesheet
    • Added npm scripts
    • Installed postcss-cli, autoprefixer and cssnano

    Link(s)

    • https://www.npmjs.com/package/stylelint-scss
    • https://github.com/browserslist/browserslist

    Screenshot(s)

    image

    Checklist:

    • [x] I have thoroughly read the CONTRIBUTING guidelines.
    • [x] I understand my pull request will be thoroughly reviewed at high detail.
    • [x] I understand the work in my pull request will only be available in the next version release of Checka11y.css and not in the current version release.
    • [x] I confirm the work in this pull request is valid according to my findings and is not something for anything personal.
    • [x] I have updated the README where and if applicable (still put an x if you have considered this but thought there was nothing to add or modify).
    • [x] I have added myself to the contributors section in package.json (still put an x if you have considered this but decided not to add yourself).
    • [x] I have checked I have not committed any accidental files.
    • [x] I have tested all the main modern browsers (I.e. Chrome, Firefox, Edge, Safari - please leave this unchecked if there were any browsers listed you could not test and list them in the help section with details why you couldn't test that browser)
    • [x] All new and existing a11y checks still work correctly (compare your local test/index.html to the test/index.html in the master branch).

    Help

    Couldn't install v10.x.x of Autoprefixer because it's not compatible with v8 of PostCSS, so had to downgrade to v9.8.6 of Autoprefixer, until they release a fix.

    priority project enhancement 
    opened by jackdomleo7 8
  • Bump minimatch from 3.0.4 to 3.1.2

    Bump minimatch from 3.0.4 to 3.1.2

    Bumps minimatch from 3.0.4 to 3.1.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • [DOCUMENTATION]: Move the documentation website source code into the master branch

    [DOCUMENTATION]: Move the documentation website source code into the master branch

    Documentation Issue or Feature

    Describe the documentation issue or feature request

    Currently, the documentation website source code is sitting in the gh-pages branch. I want to change this so it sits in a docs/ directory in the master branch, then automatically deploy to the gh-pages branch. I also want to utilise Nuxt 3 rather than raw HTML, CSS & JS.

    Acceptance criteria

    • [ ] Use Nuxt 3
    • [ ] Move docs into master branch
    • [ ] Script to deploy to the gh-pages branch
    • [ ] Automatically deploy to gh-pages on every master build

    Why is this important?

    This is important because it keeps the code clean and in one place. It also allows other developers to easily contribute to the documentation website.

    documentation blocked 
    opened by jackdomleo7 2
  • Important comment is repeated thrice in main checka11y.css file

    Important comment is repeated thrice in main checka11y.css file

    Details

    The below comment should only appear in the checka11y.css file once, but it appears 3 times. (NOTE: Version may be different to the time this was raised)

    /*! Checka11y.css v1.3.3 | MIT License | github.com/jackdomleo7/Checka11y.css */
    

    Screenshot(s)

    N/A

    What is Expected?

    Important comment to only appear once in checka11y.css.

    What is actually happening?

    Important comment is appearing 3 times in checka11y.css.

    bug good first issue 
    opened by jackdomleo7 8
  • lang attribute on <html> is set to a known language

    lang attribute on is set to a known language

    Describe the new a11y feature or project enhancement

    It would be nice to indicate if the value set on the lang attribute on the <HTML> is set to a know language string as defined here by w3. Although this is a very long piece of work and may prove to be better suited in a JS accessibility tool.

    Link(s)

    • https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
    • https://www.w3.org/International/articles/language-tags/#rfc
    • https://r12a.github.io/app-subtags
    a11y feature 
    opened by jackdomleo7 3
  • Inputs missing labels & Labels missing inputs

    Inputs missing labels & Labels missing inputs

    Proposal:

    Inputs missing labels (often when Placeholders are being used as labels) might have unclear intentions.

    Issue:

    <input type="text" placeholder="Email" />
    

    The placeholder in the above example is rarely read by screenreaders

    Issue 2:

    <label>Email</label>
    <input type="text" />
    

    The label in the above example exists, but is not associated with an element so will often be misinterpreted.

    Solution:

    <label for="email">Email Address</label>
    <input name="email" type="text" />
    

    The above is the best-accepted solution, which most screen readers understand (unlike <label><input></label>).

    We should check 2 things

    • [ ] Does a label have a for attribute present and populated
    • [ ] Does an input have a name attribute present and populated

    This won't account for if any inputs/labels have attributes present but their counterparts don't exist, however.

    a11y feature needs more info 
    opened by danspratling 7
Releases(v2.3.0)
  • v2.3.0(Jan 17, 2022)

  • v2.2.0(Dec 21, 2021)

    New features:

    • W0015: Check for deprecated longdesc attribute on <img> #152
    • E0015: Check for the longdesc attribute on an <img> containing anything other than a URL to a webpage #152
    • E0016: Check for the longdesc attribute on an <img> being empty #152
    • E0017: Check for empty <title> in the <head> #155
    • E0018: Check for missing <title> in the <head> #155

    Bug fixes:

    • Fix where warnings were taking priority over errors #152

    Maintenance:

    • Updated dev dependencies #156
    • Updated Stylelint config #156
    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Nov 9, 2021)

    What's new:

    • Added minified stylesheets (checka11y.min.css, checka11y-errors.min.css, checka11y-warnings.min.css) (#146)

    Maintenance:

    • Dependency updates (#146)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Oct 19, 2021)

    Read our migration guide.

    Breaking changes:

    • Dropped support for node-sass (#124)
    • Migrated away from the Sass @import at-rule to use the Sass @use at-rule (#124)
    • Refactored customisable !default Sass variables to be more specific (#138)
      • $text-warning -> $checka11y-text-warning
      • $bg-warning -> $checka11y-bg-warning
      • $border-warning -> $checka11y-border-warning
      • $text-error -> $checka11y-text-error
      • $bg-error -> $checka11y-bg-error
      • $border-error -> $checka11y-border-error
      • $font-family -> $checka11y-font-family
      • $font-size -> $checka11y-font-size
      • $font-weight -> $checka11y-font-weight

    What's new:

    • Made sass an optional peer dependency (#137)
      • if you're importing the .scss files, then you need sass installed, whereas if you're only importing the .css files, then you don't necessarily need it for this package
    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Oct 14, 2021)

    New features:

    • Show a warning (W0010) when role="text" is used in heading elements (#111)
    • Show a warning (W0011) when anchor tags appear to be used as buttons (#110)
    • Show a warning (W0012) when a <section> does not contain a heading element (#115)
    • Show a warning (W0013) when there is a link to a potentially inaccessible document (#120)
    • Show a warning (W0014) when there is a link to a potentially inaccessible Youtube link (#120)

    Maintenance:

    • Replaced node-sass with Sass (#114)
    • Dev dependency updates (#114) (#118)
    • Refactored workflows to be more reliable (#118)
    • Automate publishing to npm (#135)(#136)
    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Mar 14, 2021)

  • v1.3.2(Feb 3, 2021)

  • v1.3.1(Feb 3, 2021)

  • v1.3.0(Feb 2, 2021)

    New features:

    • Error & Warning feature codes so developers can read & learn more about how to resolve their error or warning (#98)
    • Warning for potentially broken copy (#92)
    • Warning when using potentially inaccessible title attribute (#99)
    • Warning when focusable elements are nested within an element with aria-hidden="true" (#100)
    • Ability to disable warnings & errors by having separate stylesheets (#93)

    Bug fixes:

    • Warning/error messages inherit too many styles (#90 )
    • Resolve heading order check so it doesn't throw any false errors (#94)
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Dec 21, 2020)

    New features:

    • Check semantic order of heading elements (#82)

    Project enhancements:

    • Show error and warning messages on void elements that are unable to render a ::before and an ::after. (#81)
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Nov 7, 2020)

    New features:

    • Check for & warn on use of underline element (#62)
    • Check for meaningful alt on images (#65)
    • Check for elements which aren't <a> or <button> for mouse event handlers (#70)
    • Allow <script> and <template> to be direct children of <ul> and <ol> (#74)

    Project enhances:

    • Added Cypress for UI testing (#68)
    • Run Cypress tests in CI (#73)
    • Improved Yarn documentation (#71)
    • SCSS linting (#75)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Oct 7, 2020)

A lightweight (<1Kb) JavaScript package to facilitate a11y-compliant tabbed interfaces

A11y Tabs A lightweight (<1Kb) JavaScript package to facilitate a11y-compliant tabbed interfaces. Documentation ↗ Demo on Codepen ↗ Features: Support

null 5 Nov 20, 2022
CSS-based animations triggered by JS, defined in your stylesheet

Anim-x CSS-based animations triggered by JS, defined in your stylesheet. $ npm i https://github.com/LTBL-Studio/anim-x.git Quick start An animation is

LTBL 2 Sep 29, 2021
Convert Your Kindle highlight & Note to Markdown/JSON

kindle-highlight-to-markdown Convert Your Kindle highlight & Note to Markdown/JSON Install Install with npm: npm install kindle-highlight-to-markdown

azu 15 Dec 31, 2022
A plugin for obsidian to focus and highlight on a specific heading in Reading mode.

Focus and Highlight A plugin for obsidian to focus on a specific paragraph in Reading mode. Features Focus on a specific heading and its children when

Bo-Yi Tsai 22 Dec 21, 2022
Steam - Highlight specific friends who play

highlight-friends Steam Website - Highlight specific friends who play https://greasyfork.org/en/scripts/450409-highlight-specific-friends-who-play?loc

Roman Davydov 6 Nov 6, 2022
"Jira Search Helper" is a project to search more detail view and support highlight than original jira search

Jira Search Helper What is Jira Search Helper? "Jira Search Helper" is a project to search more detail view and support highlight than original jira s

null 41 Dec 23, 2022
Highlight the Web ✏️✨

Marker is a Browser Add-On that lets you draw on any Website. Please first navigate to a website, then press on the toolbar button to activate the add

Robin Röper 10 Nov 14, 2022
Syntax highlight using VSCode's json/plist as is.

WIP dps-vsctm.vim Syntax highlight using VSCode's json/plist as is. Requirements denops.vim Usage First, the grammar definition file must be placed in

NAKAI Tsuyoshi 68 Dec 26, 2022
Stylesheet and scripts for implementing dark mode with Bootstrap 4

Bootstrap Darkmode This project provides a stylesheet and two scripts that allow you to implement a dark theme on your website. It is initially loaded

Adrian Kunz 41 Nov 27, 2022
Bootstrap 4 stylesheet that implements vertically-oriented navigation tabs.

Responsive Vertical Navigation Tabs for Boostrap 4 New! ?? If you use Bootstrap 5, a new package is available for that: bootstrap-5-vertical-tabs A st

Tromgy 9 Aug 4, 2022
Pure JavaScript HTML5 Canvas Range Slider. No stylesheet needed. Simple, elegant and powerful. A quirky alternative to other sliders.

CanvasSlider CanvasSlider is a lightweight JavaScript range slider. Most of the range slider controls use Javascript and a stylesheet. This slider use

null 7 Aug 15, 2022
Minificator allows you to quickly minify your files (Images, HTML, CSS, Javascript)

ᗰIᑎIᖴIᑕᗩTOᖇ ~ Demo ~ ?? Description Minification is the process of removing unnecessary elements and rewriting code to reduce file size. These are usu

Raja Rakotonirina 8 Nov 14, 2022
Quickly create an interactive HTML mock-up by auto sourcing lorem ipsum/images generators, with minimal html markup, and no server side code

RoughDraft.js v0.1.5 Quickly mockup / prototype HTML pages with auto-generated content, without additional JavaScript or server side code. <section>

Nick Dreckshage 464 Dec 21, 2022
This gem aims to let you quickly send SMS from JavaScript and Python using the Orange SMS API.

Orange SMS API ?? Orange SMS is a client library that allow you to send SMS with Javascript and Python using the Orange SMS API Disclaimer ⛔ This gem

Honorable Con 6 Aug 4, 2022
Firebase Angular Skeleton - Quickly create an application with a fully functional authentication, authorization and user management system.

FAngS - Firebase Angular Skeleton FAngS lets you quickly create an application with a fully functional authentication, authorization and user manageme

Ryan Lefebvre 7 Sep 21, 2022
Open source app to beautify screenshots, quickly and easily

Codename: Pika What it does Lets you quickly beautify screenshots by adding rounded corners, background colors, shadows and more. You can copy the bea

Rishi Mohan 458 Dec 29, 2022
Frontend, contracts, and merkle tree generator for use in quickly scaffolding ERC20 token airdrops.

Merkle Airdrop Starter Quickly bootstrap an ERC20 token airdrop to a Merkle tree of recipients. Steps: Generate Merkle tree of recipients by following

Anish Agnihotri 675 Dec 22, 2022
A vscode extension to quickly print variable, variable type, tensor shape etc by using shortcuts

Quick Python Print This repo is inspired by "Python Quick Print". "Python Quick Print" can quickly print out variables on the console by using shortcu

weida wang 5 Oct 28, 2022
This plugin for Obsidian enables you to quickly jump to internal and external links

Obsidian Quick Jump Plugin This plugin for Obsidian enables you to quickly jump to internal and external links. This plugin is inspired by Jump to lin

Tadashi Aikawa 9 Sep 24, 2022