{"id":18454115,"url":"https://github.com/ruslansagitov/loud","last_synced_at":"2025-06-30T23:40:27.498Z","repository":{"id":17943983,"uuid":"20924226","full_name":"ruslansagitov/loud","owner":"ruslansagitov","description":"Web accessibility testing helper","archived":false,"fork":false,"pushed_at":"2025-01-01T09:10:30.000Z","size":1436,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-15T20:49:52.319Z","etag":null,"topics":["accessibility","testing"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruslansagitov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-06-17T13:25:49.000Z","updated_at":"2025-01-01T09:00:46.000Z","dependencies_parsed_at":"2025-04-08T03:36:02.215Z","dependency_job_id":"393af838-172c-46eb-be48-fb0bd1a284c7","html_url":"https://github.com/ruslansagitov/loud","commit_stats":{"total_commits":361,"total_committers":2,"mean_commits":180.5,"dds":"0.0027700831024930483","last_synced_commit":"7864609f5a632b3665be316c3c90e476e1e762c9"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ruslansagitov/loud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslansagitov%2Floud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslansagitov%2Floud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslansagitov%2Floud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslansagitov%2Floud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruslansagitov","download_url":"https://codeload.github.com/ruslansagitov/loud/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslansagitov%2Floud/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262869383,"owners_count":23377280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","testing"],"created_at":"2024-11-06T08:03:00.677Z","updated_at":"2025-06-30T23:40:27.449Z","avatar_url":"https://github.com/ruslansagitov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Loud [![Build Status](https://github.com/ruslansagitov/loud/actions/workflows/test.yaml/badge.svg)](https://github.com/ruslansagitov/loud/actions/workflows/test.yaml) [![Coverage Status](https://coveralls.io/repos/ruslansagitov/loud/badge.svg)](https://coveralls.io/r/ruslansagitov/loud) [![Code Climate](https://codeclimate.com/github/ruslansagitov/loud/badges/gpa.svg)](https://codeclimate.com/github/ruslansagitov/loud)\n\nWeb accessibility testing helper\n\n## What is it?\n\nLoud is a JavaScript library for browser, which helps track regression\nof accessibility.\n\nLoud ships under terms of the MIT License.\n\n## Why do I need it?\n\nYou break HTML pages on elements. Each element you can create in\ndifferent ways. For example, you can create a button like this (with\na little bit of JavaScript):\n\n```html\n\u003ci role=\"button\" aria-label=\"Join\"\u003e\u003c/i\u003e\n```\n\nFrom accessibility point of view, this is a button. Later, you decide to\nchange the button to something like this:\n\n```html\n\u003cbutton\u003eJoin\u003c/button\u003e\n```\n\nFrom accessibility point of view, this is also a button and both buttons\nare the same.\n\nLoud knows how elements look like from the accessibility point of view.\nYou can use this information to track accessibility regression of your\nweb pages.\n\n## Getting Started\n\nGet a release tarball, or clone the repository, or use [npm][] and\n[browserify][], or [bower][]:\n\n```\nbower install loud --save-dev\n```\n\nAdd `./dist/loud.js` to a testing page:\n\n```html\n\u003cscript src=\"/path/to/loud/dist/loud.js\"\u003e\u003c/script\u003e\n```\n\nTest with Loud (using [Jasmine][], for example):\n\n```js\ndescribe('loud', function() {\n    beforeEach(function() {\n        this.button = document.createElement('button');\n        this.button.innerHTML = 'Join';\n        document.body.appendChild(this.button);\n    });\n\n    afterEach(function() {\n        document.body.removeChild(this.button);\n    });\n\n    it('works', function() {\n        expect(loud.say(this.button)).toEqual(['Join', 'button']);\n    });\n});\n```\n\n## Going Further\n\nRead the full documentation on [loud.readthedocs.io][].\n\n [npm]: \u003chttps://github.com/npm/npm\u003e \"npm — A package manager for JavaScript\"\n [browserify]: \u003chttps://github.com/substack/node-browserify\u003e \"browserify — Browser-side require() the Node.js way\"\n [bower]: \u003chttps://github.com/bower/bower\u003e \"Bower — A package manager for the web\"\n [Jasmine]: \u003chttp://jasmine.github.io/\u003e \"Jasmine — Behavior-Driven JavaScript\"\n [loud.readthedocs.io]: \u003chttps://loud.readthedocs.io\u003e \"Loud Documentation\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslansagitov%2Floud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruslansagitov%2Floud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslansagitov%2Floud/lists"}