https://github.com/bytedance/a11y-cloud
无障碍可视化适配 - Empowering the Visually Impaired Community
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.2%) to scientific vocabulary
Repository
无障碍可视化适配 - Empowering the Visually Impaired Community
Basic Info
Statistics
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.CN.md
无障碍云标签-助力视障群体
无障碍解决方案,不再需要前端开发者持续写代码适配。只需接入云标签sdk后,根据云标签定义的数据规则,使用标注工具进行可视化配置,并实时进行无障碍测试,该工作全程可由 0 研发基础的QA或其他角色完成。 (当UI视图结构动态变化时,云标签sdk会根据页面内容实时生成新的无障碍属性)
快速体验
- 安装依赖
$ yarn bootstrap
- 构建 mark tool 与 runtime sdk 并启动 node server
$ yarn build
选择运行 example
? Please choose usage:
❯ Run example
Run packages
选择运行 nodejs-server
? Please choose usage: Run example
? Please choose examples:
a11y-webpack-loader-react
❯ nodejs-server
等待构建结束,会自动打开 http://localhost:3001/index.html 标注面板并连接 socket
打开你的项目,在代码中引入sdk;或在浏览器打开任意网站,通过devtool控制台引入sdk。随后即可在 http://localhost:3001/index.html 标注面板开始无障碍标注
js
const script = document.createElement("script");
script.src = "http://localhost:3001/sdk.min.js";
document.body.appendChild(script);
快速接入部署
想要在你的工程中接入无障碍云标签,方式如下:
- 使用
Build命令构建前端产物,随后将packages/a11y-web-client/dist产物放入你的资源平台,将packages/a11y-web-sdk/dist产物引入你的项目(也可以直接将源代码接入你自己的项目进行构建)。
$ Yarn build
选择构建 packages
? Please choose usage:
Run example
❯ Run packages
选择构建 a11y-web-client 和 a11y-web-sdk
? Please choose usage: Run packages
? Please select the corresponding debug packages (multiple selections allowed, use space to
select, supports fuzzy search):
◉ a11y-web-client
❯◉ a11y-web-sdk
◯ a11y-web-socket
◯ a11y-webpack-loader
构建完成后调整产物位置
- 将
packages/a11y-web-socket目录下的 nodejs 代码部署在你的服务器,通过命令启动(提醒:修改端口配置config/deployment.config.js)
$ cd packages/a11y-web-socket && npm run start
- 按照
examples/nodejs-server目录下的 mock 接口 interface 实现,存入你自己的数据库。(提醒:修改端口配置config/deployment.config.js)
云标签标准数据说明
A11yTag Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| desc | 无障碍的功能描述 | string |
| attrs | 云标签sdk会直接将attrs内的属性设置在目标元素上 | AttrsProps |
| aid | 元素的a11y-id的属性值,通过a11y-loader生成,用来选择元素 | string |
| query | 元素的css Selector,用来选择元素(与aid二选一使用) | string |
| calcAttrs | 计算规则定义,该条目下会告知云标签sdk如何通过现有页面元素的信息去生成无障碍属性 | CalcAttrsProps |
AttrsProps Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| tabindex | 焦点顺序,遵循w3c | string | number |
| role | 如buton、link、dialog等,遵循w3c | string |
- 该类别下可支持任意标准html元素属性。
CalcAttrsProps Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| label | 句子,一个焦点的最终朗读结果 | LabelProps |
LabelProps Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| list | 片段,一个句子包含多个片段 | ListProps |
| terms | 条件,指定片段在某个或多个条件下生效 | termsProps |
ListProps Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| list | 片段,一个句子包含多个片段 | WordProps[] |
WordProps Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| aid | 元素的a11y-id的属性值,通过a11y-loader生成,用来选择元素 | string |
| query | 元素的css Selector,用来选择元素 | string |
| value | 固定文案拼接 | string |
| opt | 单词处理方式:默认为追加(+),可以设置为删减(-) | '-' | '+' |
| map | 将包含特定属性元素进行文案映射 | AttrMap |
AttrMap Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| type | 映射的类型,固定为属性 | 'attr' |
| attr | 映射的属性,如图片使用'src' | string |
| match | 匹配规则 | { [string]: string } |
termsProps Interface
| 字段名 | 字段介绍 | 字段类型 |
|---|---|---|
| bool | 生效条件,是或否 | boolean |
| check | 规则类型,当前支持:是否存在、是否为数字 | 'exist' | 'number' |
| aid | 元素的a11y-id的属性值,通过a11y-loader生成,用来选择元素 | string |
| query | 元素的css Selector,用来选择元素 | string |
目录介绍
.
├── CONTRIBUTING.CN.md
├── CONTRIBUTING.md
├── DSL.js // 云标签标准数据说明
├── LICENSE
├── README.CN.md
├── README.md
├── commitlint.config.js
├── config
│ ├── deployment.config.js // 部署配置,可根据需要修改
│ └── webpack.base.config.js // 基础的 webpack 配置
├── examples
│ ├── a11y-webpack-loader-react // React 项目使用 a11y-webpack-loader 自动生成 a11y-id 属性示例
│ └── a11y-nodejs-server // 使用 nodejs 搭建的数据处理服务示例
├── lerna.json
├── package-lock.json
├── package.json
├── packages
│ ├── a11y-web-client // 云标签标注工具🔧,支持标注过程高亮、功能实时生效
│ ├── a11y-web-sdk // 云标签运行时sdk,在代码中接入无障碍能力
│ ├── a11y-web-socket // 云标签服务,提供socket标注能力
│ └── a11y-webpack-loader // webpack构建loader,添加固定的a11y-id属性便于标注。(支持JSX源代码或产物代码)
├── script
│ ├── build.js
│ ├── clean.js
│ ├── start.js
│ ├── test.js
│ └── utils.js
└── yarn.lock
联系我们
如果有任何问题,可以通过提 issue 或评论的方式联系我们,我们会在三个工作日内回复。
License
无障碍云标签 使用 Apache License 2.0 。
Owner
- Name: Bytedance Inc.
- Login: bytedance
- Kind: organization
- Location: Singapore
- Website: https://opensource.bytedance.com
- Twitter: ByteDanceOSS
- Repositories: 255
- Profile: https://github.com/bytedance
GitHub Events
Total
- Watch event: 2
- Fork event: 1
Last Year
- Watch event: 2
- Fork event: 1
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: about 6 hours
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: about 6 hours
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- codetker (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/checkout v3 composite
- actions/setup-node v2 composite
- jest ^29.7.0 development
- supertest ^7.0.0 development
- chalk ^4.1.2
- dotenv ^16.4.5
- koa ^2.15.3
- koa-bodyparser ^4.4.1
- koa-router ^12.0.1
- koa-static ^5.0.0
- open 6.0.0
- uuid ^10.0.0
- @babel/plugin-proposal-private-property-in-object ^7.21.11 development
- @testing-library/jest-dom ^5.17.0 development
- @testing-library/react ^13.4.0 development
- @testing-library/user-event ^13.5.0 development
- a11y-webpack-loader ^0.0.1 development
- customize-cra ^1.0.0 development
- react-app-rewired ^2.2.1 development
- react-scripts 5.0.1 development
- i18next ^23.11.5
- react ^18.3.1
- react-dom ^18.3.1
- web-vitals ^2.1.4
- @commitlint/cli ^19.3.0 development
- @commitlint/config-conventional ^19.2.2 development
- babel-eslint ^10.0.3 development
- dotenv ^16.4.5 development
- eslint ^7.7.0 development
- eslint-config-prettier ^6.9.0 development
- eslint-plugin-babel ^5.3.0 development
- eslint-plugin-eslint-plugin ^3.5.3 development
- eslint-plugin-jest 28.4.0 development
- eslint-plugin-no-for-of-loops ^1.0.0 development
- eslint-plugin-no-function-declare-after-return ^1.0.0 development
- eslint-plugin-react ^7.20.0 development
- husky ^9.0.11 development
- inquirer ^8 development
- inquirer-checkbox-plus-prompt ^1.4.2 development
- lerna ^8.1.6 development
- lint-staged ^15.2.7 development
- prettier ^3.3.2 development
- @babel/cli ^7.24.7 development
- @babel/core ^7.24.7 development
- @babel/preset-env ^7.24.7 development
- @babel/preset-react ^7.24.7 development
- @babel/runtime-corejs2 ^7.24.7 development
- @testing-library/jest-dom ^5.17.0 development
- @testing-library/react ^13.4.0 development
- @testing-library/user-event ^13.5.0 development
- babel-loader ^9.1.2 development
- babel-plugin-module-resolver ^5.0.2 development
- clean-webpack-plugin ^4.0.0 development
- cross-env ^7.0.3 development
- css-loader ^7.1.1 development
- file-loader ^6.2.0 development
- html-webpack-plugin ^5.6.0 development
- jest ^29.7.0 development
- jest-environment-jsdom ^29.7.0 development
- jest-less-loader ^0.2.0 development
- less ^4.2.0 development
- less-loader ^12.2.0 development
- style-loader ^3.3.4 development
- terser-webpack-plugin ^5.3.10 development
- webpack ^5.91.0 development
- webpack-cli ^5.1.4 development
- webpack-dev-server ^5.0.4 development
- webpack-merge ^5.10.0 development
- webpackbar ^6.0.1 development
- @arco-design/web-react ^2.62.1
- i18next ^23.11.5
- i18next-browser-languagedetector ^8.0.0
- i18next-http-backend ^2.5.2
- react ^18.3.1
- react-dom ^18.3.1
- react-i18next ^14.1.2
- socket.io ^4.7.5
- @babel/preset-env ^7.24.7 development
- @babel/preset-react ^7.7.4 development
- @babel/runtime-corejs2 ^7.7.4 development
- babel-loader ^9.1.2 development
- babel-plugin-module-resolver ^5.0.2 development
- clean-webpack-plugin ^4.0.0 development
- css-loader ^7.1.1 development
- file-loader ^6.2.0 development
- jest ^29.7.0 development
- jest-environment-jsdom ^29.7.0 development
- jest-less-loader ^0.2.0 development
- less ^4.2.0 development
- less-loader ^12.2.0 development
- style-loader ^3.3.4 development
- terser-webpack-plugin ^5.3.10 development
- webpack ^5.91.0 development
- webpack-cli ^5.1.4 development
- webpack-dev-server ^5.0.4 development
- webpack-merge ^5.10.0 development
- webpackbar ^6.0.1 development
- socket.io-client ^4.7.5
- jest ^29.7.0 development
- socket.io-client ^4.7.5 development
- chalk ^4.1.2
- socket.io ^4.7.5
- @babel/preset-env ^7.24.7 development
- @babel/preset-react ^7.24.7 development
- @babel/runtime-corejs2 ^7.24.7 development
- babel-loader ^9.1.2 development
- clean-webpack-plugin ^4.0.0 development
- css-loader ^7.1.1 development
- file-loader ^6.2.0 development
- jest ^29.7.0 development
- less ^4.2.0 development
- less-loader ^12.2.0 development
- node-libs-browser ^2.2.1 development
- path-browserify ^1.0.1 development
- stream-browserify ^3.0.0 development
- style-loader ^3.3.4 development
- terser-webpack-plugin ^5.3.10 development
- vm-browserify ^1.1.2 development
- webpack ^5.91.0 development
- webpack-cli ^5.1.4 development
- webpack-merge ^5.10.0 development
- webpackbar ^6.0.1 development
- @babel/core 7.24.7
- @babel/generator 7.24.7
- @babel/parser 7.24.7
- @babel/traverse 7.24.7
- loader-utils 2.0.2
- md5 2.3.0
- 2019 dependencies