diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 466eac862c15c08..b91ee44af140f0a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -51,11 +51,6 @@ # ---------------------------------------------------------------------------- /files/en-us/web/api/ @mdn/yari-content-web-api -# ---------------------------------------------------------------------------- -# ENGLISH SVG CONTENT OWNER(S) -# ---------------------------------------------------------------------------- -/files/en-us/web/svg/ @mdn/yari-content-svg - # ---------------------------------------------------------------------------- # ENGLISH MOZILLA ADD-ONS CONTENT OWNER(S) # ---------------------------------------------------------------------------- @@ -75,6 +70,8 @@ # owners specified here. # ---------------------------------------------------------------------------- /.github/ @mdn/core-dev +## Issue templates +/.github/ISSUE_TEMPLATE/ff-project-issue.md @mdn/core-yari-content /* @mdn/core-dev /*.md @mdn/core-yari-content # These are @mdn-bot because the auto-merge GHA workflow uses the PAT of this account. diff --git a/.github/ISSUE_TEMPLATE/ff-project-issue.md b/.github/ISSUE_TEMPLATE/ff-project-issue.md index e8bfe1e76ad9d7f..4211c594a1ae6b7 100644 --- a/.github/ISSUE_TEMPLATE/ff-project-issue.md +++ b/.github/ISSUE_TEMPLATE/ff-project-issue.md @@ -6,7 +6,7 @@ assignees: title: "" --- -## Acceptance Criteria +## Acceptance criteria - [ ] The listed features are documented sufficiently on MDN - [ ] BCD is updated @@ -16,8 +16,8 @@ title: "" ### For folks helping with Firefox related documentation - [ ] Set bugs to `dev-doc-complete` -- [ ] Add entry to Firefox release notes if feature is enabled in release -- [ ] Add entry to Firefox experimental features page if feature is not yet enabled in release +- [ ] Add entry to Firefox release notes for enabled/preview features +- [ ] Add/remove entry to Firefox experimental features page for preference/released features ## Features to document @@ -26,5 +26,3 @@ title: "" ## Other - [ ] Check content open issues to see if any pertain to the subject matter. If there are any that can be closed because of the work, do so. If there are any that can be fixed relatively quickly because of the knowledge from completing this issue and you have time, feel free to go ahead and fix them. -- [ ] Check if glossary updates are required for the feature you're documenting - whether an existing term needs to be updated or a new term should be added. -- [ ] Check if BCD update means that content pages need to have experimental markup removed or deprecated markup added (front matter tags and macros). diff --git a/.github/labeler.yml b/.github/labeler.yml index 9be34fc852f4f6a..0627f70b2cfc4f0 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,106 +1,180 @@ +# This file is used by .github/workflows/pr-labeler.yml to label pull requests based on the files changed in the PR. +# Object matching syntax: https://github.com/actions/labeler/blob/main/README.md#match-object system: - - package.json - - yarn.lock - - .github/**/* - - .husky/**/* - - .vscode/**/* - - .* - - scripts/**/* - - tests/**/* - - jest.config.json - - front-matter-config.json + - changed-files: + - any-glob-to-any-file: + - package.json + - yarn.lock + - .github/** + - .husky/** + - .vscode/** + - .* + - scripts/** + - tests/** + - jest.config.json + - front-matter-config.json Content:Accessibility: - - files/en-us/web/accessibility/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/accessibility/** Content:CSS: - - files/en-us/web/css/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/css/** Content:Events: - - files/en-us/web/events/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/events/** Content:Firefox: - - files/en-us/mozilla/firefox/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/mozilla/firefox/** Content:Games: - - files/en-us/games/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/games/** Content:Glossary: - - files/en-us/glossary/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/glossary/** Content:Guide: - - files/en-us/web/guide/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/guide/** Content:HTML: - - files/en-us/web/html/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/html/** Content:HTTP: - - files/en-us/web/http/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/http/** Content:JS: - - files/en-us/web/javascript/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/javascript/** Content:Learn: - - any: - - files/en-us/learn/**/* - - "!files/en-us/learn/accessibility/**/*" - - "!files/en-us/learn/tools_and_testing/client-side_javascript_frameworks/**/*" - - "!files/en-us/learn/tools_and_testing/understanding_client-side_tools/**/*" - - "!files/en-us/learn/tools_and_testing/cross_browser_testing/**/*" - - "!files/en-us/learn/css/**/*" - - "!files/en-us/learn/server-side/django/**/*" - - "!files/en-us/learn/server-side/express_nodejs/**/*" - - "!files/en-us/learn/forms/**/*" - - "!files/en-us/learn/tools_and_testing/github/**/*" - - "!files/en-us/learn/html/**/*" - - "!files/en-us/learn/javascript/**/*" - - files/en-us/web/tutorials/**/* + - changed-files: + - all-globs-to-any-file: + - files/en-us/learn/** + - "!files/en-us/learn/accessibility/**" + - "!files/en-us/learn/tools_and_testing/client-side_javascript_frameworks/**" + - "!files/en-us/learn/tools_and_testing/understanding_client-side_tools/**" + - "!files/en-us/learn/tools_and_testing/cross_browser_testing/**" + - "!files/en-us/learn/css/**" + - "!files/en-us/learn/server-side/django/**" + - "!files/en-us/learn/server-side/express_nodejs/**" + - "!files/en-us/learn/forms/**" + - "!files/en-us/learn/tools_and_testing/github/**" + - "!files/en-us/learn/html/**" + - "!files/en-us/learn/javascript/**" + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/tutorials/** Content:Learn:Accessibility: - - files/en-us/learn/accessibility/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/accessibility/** Content:Learn:Client-side: - - files/en-us/learn/tools_and_testing/client-side_javascript_frameworks/**/* - - files/en-us/learn/tools_and_testing/understanding_client-side_tools/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/tools_and_testing/client-side_javascript_frameworks/** + - files/en-us/learn/tools_and_testing/understanding_client-side_tools/** Content:Learn:Cross-Browser-Testing: - - files/en-us/learn/tools_and_testing/cross_browser_testing/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/tools_and_testing/cross_browser_testing/** Content:Learn:CSS: - - files/en-us/learn/css/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/css/** Content:Learn:Django: - - files/en-us/learn/server-side/django/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/server-side/django/** Content:Learn:Express: - - files/en-us/learn/server-side/express_nodejs/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/server-side/express_nodejs/** Content:Learn:Forms: - - files/en-us/learn/forms/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/forms/** Content:Learn:GitHub: - - files/en-us/learn/tools_and_testing/github/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/tools_and_testing/github/** Content:Learn:HTML: - - files/en-us/learn/html/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/html/** Content:Learn:JavaScript: - - files/en-us/learn/javascript/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/learn/javascript/** Content:Manifest: - - files/en-us/web/manifest/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/manifest/** Content:MathML: - - files/en-us/web/mathml/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/mathml/** Content:Media: - - files/en-us/web/media/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/media/** Content:Meta: - - files/en-us/mdn/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/mdn/** Content:Performance: - - files/en-us/web/performance/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/performance/** Content:PWA: - - files/en-us/web/progressive_web_apps/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/progressive_web_apps/** Content:Security: - - files/en-us/web/security/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/security/** Content:SVG: - - files/en-us/web/svg/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/svg/** Content:wasm: - - files/en-us/webassembly/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/webassembly/** Content:WebAPI: - - files/en-us/web/api/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/api/** Content:WebDriver: - - files/en-us/web/webdriver/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/web/webdriver/** Content:WebExt: - - files/en-us/mozilla/add-ons/webextensions/**/* + - changed-files: + - any-glob-to-any-file: + - files/en-us/mozilla/add-ons/webextensions/** Content:Other: - - any: - - files/en-us/mozilla/**/* - - "!files/en-us/mozilla/add-ons/webextensions/**/*" - - "!files/en-us/mozilla/firefox/**/*" - - files/en-us/related/**/* - - files/en-us/web/demos/**/* - - files/en-us/web/exslt/**/* - - files/en-us/web/opensearch/**/* - - files/en-us/web/privacy/**/* - - files/en-us/web/text_fragments/**/* - - files/en-us/web/xml/**/* - - files/en-us/web/xpath/**/* - - files/en-us/web/xslt/**/* + - changed-files: + - all-globs-to-any-file: + - files/en-us/mozilla/** + - "!files/en-us/mozilla/add-ons/webextensions/**" + - "!files/en-us/mozilla/firefox/**" + - changed-files: + - any-glob-to-any-file: + - files/en-us/related/** + - files/en-us/web/demos/** + - files/en-us/web/exslt/** + - files/en-us/web/opensearch/** + - files/en-us/web/privacy/** + - files/en-us/web/text_fragments/** + - files/en-us/web/xml/** + - files/en-us/web/xpath/** + - files/en-us/web/xslt/** diff --git a/.github/workflows/on-demand-preview-build.yml b/.github/workflows/on-demand-preview-build.yml deleted file mode 100644 index 0dec5529814a03a..000000000000000 --- a/.github/workflows/on-demand-preview-build.yml +++ /dev/null @@ -1,166 +0,0 @@ -name: On Demand Preview Build - -on: - workflow_dispatch: - inputs: - notes: - description: "Notes" - required: false - default: "Default on demand preview build" - - # This is very useful when combined with the "Use workflow from" - # feature that is built into the "Run workflow" button on - # https://github.com/mdn/yari/actions?query=workflow%3A%22Production+Build%22 - # If you override the deployment prefix to something like the name - # of the branch, you can deploy that entire branch to its own prefix - # in S3 which means that it can be fully hosted as its own site. - deployment_prefix: - description: "Deployment prefix" - required: false - default: "contributor-docs" - -jobs: - on-demand-preview-deploy: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: yarn - - - name: Install all yarn packages - run: yarn --frozen-lockfile - env: - # https://github.com/microsoft/vscode-ripgrep#github-api-limit-note - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Build content - env: - CONTENT_ROOT: ${{ github.workspace }}/files - - # This is so that if there's a single 'unsafe_html' flaw, it - # completely fails the build. - # But all other flaws should be 'warn', so that we can include - # information about the flaws when we analyze the built PR. - BUILD_FLAW_LEVELS: "unsafe_html: error, *:warn" - - # Because we build these pages in a way that you get a toolbar, - # so the flaws can be displayed, but we don't want any of the - # other toolbar features like "Fix fixable flaws" or "Quick-edit" - # we set this to disable that stuff. - REACT_APP_CRUD_MODE_READONLY: true - - BUILD_LIVE_SAMPLES_BASE_URL: https://live.mdnyalp.dev - BUILD_LEGACY_LIVE_SAMPLES_BASE_URL: https://live-samples.mdn.allizom.net - - # In these builds, we never care for or need the ability to sign in. - # This environment variable will disable that functionality entirely. - REACT_APP_DISABLE_AUTH: true - - # TODO: This should be implicit when `CI=true` - BUILD_NO_PROGRESSBAR: true - - # Playground - REACT_APP_PLAYGROUND_BASE_HOST: mdnyalp.dev - - run: | - # The reason this script isn't in `package.json` is because - # you don't need that script as a writer. It's only used in CI - # and it can't use the default CONTENT_ROOT that gets set in - # package.json. - yarn build - echo "Disk usage size of build/" - du -sh $BUILD_OUT_ROOT - - - name: Merge static assets with built documents - run: | - rsync -a node_modules/@mdn/yari/client/build/ build/ - # Now that build/ directory contains everything you need to deploy - # that as a site. HTML, static assets, images, etc. - # However, that Yari static files is very heavy and it's in large - # part due to the .map files. - # In fact, as of March 2021, the client/build/static directory - # is 2.3MB but only 864KB without all the .map files. - # Let's delete those this time because this isn't the right time - # to debug JS or CSS. - echo "Before..." - du -sh build - find build/static -type f -name "*.map" | xargs ls -lh - find build/static -type f -name "*.map" | xargs rm - echo "After..." - du -sh build - - - uses: technote-space/get-diff-action@v6.1.2 - with: - PATTERNS: files/**/*.+(png|jpeg|jpg|gif|svg|webp) - ABSOLUTE: true - SET_ENV_NAME: GIT_DIFF_FILES - - - name: Install Python - id: setup-python - uses: actions/setup-python@v5 - with: - python-version: "3.8" - - # See https://www.peterbe.com/plog/install-python-poetry-github-actions-faster - - name: Load cached ~/.local - uses: actions/cache@v4 - with: - path: ~/.local - # the trailing number is used to increase for getting - # a different cache key when this file changes - key: dotlocal-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-0 - - - name: Install Python poetry - uses: snok/install-poetry@v1.3 - with: - virtualenvs-create: true - virtualenvs-in-project: true - - - name: Load cached venv - id: cached-poetry-dependencies - uses: actions/cache@v4 - with: - path: yari/deployer/.venv - key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}-${{ hashFiles('.github/workflows/pr-review-companion.yml') }} - - - name: Checkout Yari - uses: actions/checkout@v4 - with: - repository: mdn/yari - path: yari - - - name: Install poetry dependencies - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: | - cd yari/deployer - poetry install --no-interaction --no-root - - - name: Install Deployer - run: | - cd yari/deployer - poetry install --no-interaction - - - name: Deploy and analyze built content - env: - BUILD_OUT_ROOT: ${{ github.workspace }}/build - DEPLOYMENT_PREIFIX: ${{ github.event.inputs.deployment_prefix }} - - DEPLOYER_BUCKET_NAME: mdn-content-dev - AWS_ACCESS_KEY_ID: ${{ secrets.DEPLOYER_DEV_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.DEPLOYER_DEV_AWS_SECRET_ACCESS_KEY }} - DEPLOYER_LOG_EACH_SUCCESSFUL_UPLOAD: false - - run: | - echo "ON DEMAND PREVIEW DEPLOY: $DEPLOYMENT_PREIFIX" - - cd yari/deployer - - poetry run deployer upload \ - --prefix="$DEPLOYMENT_PREIFIX" \ - --default-cache-control 0 \ - "$BUILD_OUT_ROOT" diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 204899d098e0e1a..342e1d366095189 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -16,9 +16,10 @@ jobs: name: Label by path runs-on: ubuntu-latest steps: - - uses: actions/labeler@v4 + - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" + sync-labels: true # Docs: https://github.com/CodelyTV/pr-size-labeler label-by-size: diff --git a/.github/workflows/pr-review-companion.yml b/.github/workflows/pr-review-companion.yml index 4a1fcf3f4921b73..7e24866c7bba14a 100644 --- a/.github/workflows/pr-review-companion.yml +++ b/.github/workflows/pr-review-companion.yml @@ -5,24 +5,39 @@ name: PR review companion -on: workflow_call +on: + workflow_run: + workflows: ["PR Test"] + types: + - completed jobs: review: runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: "Download artifact" uses: actions/download-artifact@v4 with: - name: build + pattern: build path: build + merge-multiple: true + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + + - name: Check for artifacts + if: ${{ hashFiles('build/') != '' }} + run: | + echo "HAS_ARTIFACT=true" >> "$GITHUB_ENV" - uses: actions/checkout@v4 + if: ${{ env.HAS_ARTIFACT }} with: repository: mdn/yari path: yari - name: Install Python + if: ${{ env.HAS_ARTIFACT }} id: setup-python uses: actions/setup-python@v5 with: @@ -30,6 +45,7 @@ jobs: # See https://www.peterbe.com/plog/install-python-poetry-github-actions-faster - name: Load cached ~/.local + if: ${{ env.HAS_ARTIFACT }} uses: actions/cache@v4 with: path: ~/.local @@ -38,12 +54,14 @@ jobs: key: dotlocal-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-0 - name: Install Python poetry + if: ${{ env.HAS_ARTIFACT }} uses: snok/install-poetry@v1.3 with: virtualenvs-create: true virtualenvs-in-project: true - name: Load cached venv + if: ${{ env.HAS_ARTIFACT }} id: cached-poetry-dependencies uses: actions/cache@v4 with: @@ -53,17 +71,19 @@ jobs: key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}-${{ steps.setup-python.outputs.python-version }}-0 - name: Install poetry dependencies - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + if: ${{ env.HAS_ARTIFACT && steps.cached-poetry-dependencies.outputs.cache-hit != 'true' }} run: | cd yari/deployer poetry install --no-interaction --no-root - name: Install Deployer + if: ${{ env.HAS_ARTIFACT }} run: | cd yari/deployer poetry install --no-interaction - name: Deploy and analyze built content + if: ${{ env.HAS_ARTIFACT }} env: BUILD_OUT_ROOT: ${{ github.workspace }}/build diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 2c17a845c0fd751..51a23553a9cafb2 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -7,11 +7,7 @@ name: PR Test on: - # The `GITHUB_TOKEN` in workflows triggered by the `pull_request_target` event - # is granted read/write repository access. - # Please pay attention to limit the permissions of each job! - # https://docs.github.com/actions/using-jobs/assigning-permissions-to-jobs - pull_request_target: + pull_request: branches: - main @@ -22,8 +18,6 @@ jobs: # Set the permissions to `read-all`, preventing the workflow from # any accidental write access to the repository. permissions: read-all - outputs: - has_assets: ${{ steps.build-content.outputs.has_assets }} env: BASE_SHA: ${{ github.event.pull_request.base.sha }} HEAD_SHA: ${{ github.event.pull_request.head.sha }} @@ -35,8 +29,6 @@ jobs: steps: - uses: actions/checkout@v4 - with: - ref: "${{ env.HEAD_SHA }}" - name: Get changed files run: | @@ -119,9 +111,6 @@ jobs: # be able to use this raw diff file for the benefit of analyzing. wget https://github.com/${{ github.repository }}/compare/${{ env.BASE_SHA }}...${{ env.HEAD_SHA }}.diff -O ${{ env.BUILD_OUT_ROOT }}/DIFF - # Set the output variable so the next job could skip if there are no assets - echo "has_assets=true" >> "$GITHUB_OUTPUT" - - name: Merge static assets with built documents if: ${{ env.GIT_DIFF_CONTENT }} run: | @@ -143,13 +132,3 @@ jobs: export CONTENT_ROOT=$(pwd)/files yarn filecheck ${{ env.GIT_DIFF_FILES }} - - review: - needs: tests - if: ${{ needs.tests.outputs.has_assets }} - # write permissions are required to create a comment in the corresponding PR - permissions: write-all - uses: ./.github/workflows/pr-review-companion.yml - # inherit the secrets from the parent workflow - # https://docs.github.com/actions/using-workflows/reusing-workflows#using-inputs-and-secrets-in-a-reusable-workflow - secrets: inherit diff --git a/.vscode/project-words.txt b/.vscode/project-words.txt index 8c40b619bb271c1..b8d9554c7fa11c0 100644 --- a/.vscode/project-words.txt +++ b/.vscode/project-words.txt @@ -63,6 +63,7 @@ rgba ripgrep rustc sctp +SMIL srgb tabak Temani diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b5f7151e1cebeeb..8c913464b6628fe 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,7 +3,7 @@ Thanks for taking the time to contribute to [MDN Web Docs](https://developer.mozilla.org)! :tada: This document covers project setup steps along with a set of guidelines for contributing to MDN Web Docs content. -Everyone participating in this project is expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md). +Everyone participating in this project is expected to follow our [Code of Conduct](https://github.com/mdn/content/blob/main/CODE_OF_CONDUCT.md), which means adhering to [Mozilla's Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/). If you want to jump right in, see [Getting started with MDN Web Docs][] for an overview of how to join, and the [Contribute page][] on MDN for a filtered list of tasks. ## Getting started diff --git a/README.md b/README.md index 7313d80bd22912c..30b75d536f74c64 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ You can contribute to MDN Web Docs and be a part of our community through conten The MDN Web Docs project welcomes contributions from everyone who shares our goals and wants to contribute constructively and respectfully within our community. To find out how to get started, see the [CONTRIBUTING.md](CONTRIBUTING.md) document in this repository. -By participating in and contributing to our projects and discussions, you acknowledge that you have read and agree to our [Code of Conduct](CODE_OF_CONDUCT.md). +By participating in and contributing to our projects and discussions, you acknowledge that you have read and agree to our [Code of Conduct](CODE_OF_CONDUCT.md), which means adhering to [Mozilla's Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/). ## Get in touch diff --git a/REVIEWING.md b/REVIEWING.md index 6062a357498fbca..3b3e780c07b19d1 100644 --- a/REVIEWING.md +++ b/REVIEWING.md @@ -194,10 +194,6 @@ team, which currently consists of [@Rumyra](https://github.com/Rumyra/). - [@sideshowbarker](https://github.com/sideshowbarker) - [@Elchi3](https://github.com/Elchi3) - [@jpmedley](https://github.com/jpmedley) -- [SVG reference content](https://github.com/mdn/content/tree/main/files/en-us/web/svg) - — the [@yari-content-svg](https://github.com/orgs/mdn/teams/yari-content-svg) - team, which consists of: - - [@Ryuno-Ki](https://github.com/Ryuno-Ki) ### Reviewer alumni @@ -206,6 +202,7 @@ longer have the time to contribute; we want to give them our sincere thanks for all their help. - [@vkWeb](https://github.com/vkWeb/) +- [@Ryuno-Ki](https://github.com/Ryuno-Ki) [get in touch with us]: https://developer.mozilla.org/en-US/docs/MDN/Community/Contributing/Getting_started#what_can_i_do_to_help [mdn code example guidelines]: https://developer.mozilla.org/en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide diff --git a/files/en-us/_redirects.txt b/files/en-us/_redirects.txt index 874862c290347e3..c577d7d08c0760e 100644 --- a/files/en-us/_redirects.txt +++ b/files/en-us/_redirects.txt @@ -354,7 +354,7 @@ /en-US/docs/CSS/-webkit-font-smoothing /en-US/docs/Web/CSS/font-smooth /en-US/docs/CSS/-webkit-hyphens /en-US/docs/Web/CSS/hyphens /en-US/docs/CSS/-webkit-mask /en-US/docs/Web/CSS/mask -/en-US/docs/CSS/-webkit-mask-attachment /en-US/docs/Web/CSS/-webkit-mask-attachment +/en-US/docs/CSS/-webkit-mask-attachment /en-US/docs/Web/CSS /en-US/docs/CSS/-webkit-mask-box-image /en-US/docs/Web/CSS/-webkit-mask-box-image /en-US/docs/CSS/-webkit-mask-clip /en-US/docs/Web/CSS/mask-clip /en-US/docs/CSS/-webkit-mask-composite /en-US/docs/Web/CSS/-webkit-mask-composite @@ -5751,6 +5751,7 @@ /en-US/docs/Mozilla/Add-ons/WebExtensions/Downloading_accessing_and_saving_files_in_browser_extensions /en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_files /en-US/docs/Mozilla/Add-ons/WebExtensions/Extension_API_differences /en-US/docs/Mozilla/Add-ons/WebExtensions/Differences_between_API_implementations /en-US/docs/Mozilla/Add-ons/WebExtensions/Firefox_differentiators https://extensionworkshop.com/documentation/develop/unique-firefox-capabilities/ +/en-US/docs/Mozilla/Add-ons/WebExtensions/Firefox_workflow_overview https://extensionworkshop.com/documentation/develop/firefox-workflow-overview/ /en-US/docs/Mozilla/Add-ons/WebExtensions/Index /en-US/docs/Mozilla/Add-ons/WebExtensions /en-US/docs/Mozilla/Add-ons/WebExtensions/Making_money_from_browser_extensions https://extensionworkshop.com/documentation/publish/make-money-from-browser-extensions/ /en-US/docs/Mozilla/Add-ons/WebExtensions/Notifications /en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications @@ -8449,6 +8450,9 @@ /en-US/docs/Web/API/HTMLElement/input_event /en-US/docs/Web/API/Element/input_event /en-US/docs/Web/API/HTMLElement/invalid_event /en-US/docs/Web/API/HTMLInputElement/invalid_event /en-US/docs/Web/API/HTMLElement/lostpointercapture_event /en-US/docs/Web/API/Element/lostpointercapture_event +/en-US/docs/Web/API/HTMLElement/mscandidatewindowhide_event /en-US/docs/Web/API/HTMLElement +/en-US/docs/Web/API/HTMLElement/mscandidatewindowshow_event /en-US/docs/Web/API/HTMLElement +/en-US/docs/Web/API/HTMLElement/mscandidatewindowupdate_event /en-US/docs/Web/API/HTMLElement /en-US/docs/Web/API/HTMLElement/onabort /en-US/docs/Web/API/HTMLMediaElement/abort_event /en-US/docs/Web/API/HTMLElement/onblur /en-US/docs/Web/API/Window/blur_event /en-US/docs/Web/API/HTMLElement/onchange /en-US/docs/Web/API/HTMLElement/change_event @@ -8647,8 +8651,8 @@ /en-US/docs/Web/API/IDBDatabase/onclose /en-US/docs/Web/API/IDBDatabase/close_event /en-US/docs/Web/API/IDBDatabase/onerror /en-US/docs/Web/API/IDBTransaction/error_event /en-US/docs/Web/API/IDBDatabase/onversionchange /en-US/docs/Web/API/IDBDatabase/versionchange_event -/en-US/docs/Web/API/IDBEnvironment.indexedDB /en-US/docs/Web/API/indexedDB -/en-US/docs/Web/API/IDBEnvironment/indexedDB /en-US/docs/Web/API/indexedDB +/en-US/docs/Web/API/IDBEnvironment.indexedDB /en-US/docs/Web/API/Window/indexedDB +/en-US/docs/Web/API/IDBEnvironment/indexedDB /en-US/docs/Web/API/Window/indexedDB /en-US/docs/Web/API/IDBFactory.cmp /en-US/docs/Web/API/IDBFactory/cmp /en-US/docs/Web/API/IDBFactory.deleteDatabase /en-US/docs/Web/API/IDBFactory/deleteDatabase /en-US/docs/Web/API/IDBFactory.open /en-US/docs/Web/API/IDBFactory/open @@ -8884,9 +8888,9 @@ /en-US/docs/Web/API/MIDIAccess/onstatechange /en-US/docs/Web/API/MIDIAccess/statechange_event /en-US/docs/Web/API/MIDIInput/onmidimessage /en-US/docs/Web/API/MIDIInput/midimessage_event /en-US/docs/Web/API/MIDIPort/onstatechange /en-US/docs/Web/API/MIDIPort/statechange_event -/en-US/docs/Web/API/MSCandidateWindowHide /en-US/docs/Web/API/HTMLElement/mscandidatewindowhide_event -/en-US/docs/Web/API/MSCandidateWindowShow /en-US/docs/Web/API/HTMLElement/mscandidatewindowshow_event -/en-US/docs/Web/API/MSCandidateWindowUpdate /en-US/docs/Web/API/HTMLElement/mscandidatewindowupdate_event +/en-US/docs/Web/API/MSCandidateWindowHide /en-US/docs/Web/API/HTMLElement +/en-US/docs/Web/API/MSCandidateWindowShow /en-US/docs/Web/API/HTMLElement +/en-US/docs/Web/API/MSCandidateWindowUpdate /en-US/docs/Web/API/HTMLElement /en-US/docs/Web/API/MediaCapabilities/MediaCapabilitiesInfo /en-US/docs/Web/API/MediaCapabilities /en-US/docs/Web/API/MediaCapabilitiesInfo /en-US/docs/Web/API/MediaCapabilities/encodingInfo /en-US/docs/Web/API/MediaCapabilities_API /en-US/docs/Web/API/Media_Capabilities_API/Using_the_Media_Capabilities_API @@ -8894,6 +8898,7 @@ /en-US/docs/Web/API/MediaDevices/mediaDevices.getUserMedia /en-US/docs/Web/API/MediaDevices/getUserMedia /en-US/docs/Web/API/MediaDevices/ondevicechange /en-US/docs/Web/API/MediaDevices/devicechange_event /en-US/docs/Web/API/MediaEncodingConfiguration /en-US/docs/Web/API/MediaCapabilities/encodingInfo +/en-US/docs/Web/API/MediaError/msExtendedCode /en-US/docs/Web/API/MediaError /en-US/docs/Web/API/MediaImage /en-US/docs/Web/API/MediaMetadata/artwork /en-US/docs/Web/API/MediaKeySession/onkeystatuseschange /en-US/docs/Web/API/MediaKeySession/keystatuseschange_event /en-US/docs/Web/API/MediaKeySession/onmessage /en-US/docs/Web/API/MediaKeySession/message_event @@ -9024,8 +9029,8 @@ /en-US/docs/Web/API/MouseEvent/region /en-US/docs/Web/API/MouseEvent /en-US/docs/Web/API/MouseEvent/which /en-US/docs/Web/API/UIEvent/which /en-US/docs/Web/API/MouseWheelEvent /en-US/docs/Web/API/WheelEvent -/en-US/docs/Web/API/MsExtendedCode /en-US/docs/Web/API/MediaError/msExtendedCode -/en-US/docs/Web/API/MsFirstPaint /en-US/docs/Web/API/PerformanceTiming/MsFirstPaint +/en-US/docs/Web/API/MsExtendedCode /en-US/docs/Web/API/MediaError +/en-US/docs/Web/API/MsFirstPaint /en-US/docs/Web/API/PerformanceTiming /en-US/docs/Web/API/MsHorizontalMirror /en-US/docs/Web/API/HTMLVideoElement /en-US/docs/Web/API/MsInsertVideoEffect /en-US/docs/Web/API/HTMLVideoElement /en-US/docs/Web/API/MsIsBoxed /en-US/docs/Web/API/HTMLVideoElement @@ -9344,6 +9349,7 @@ /en-US/docs/Web/API/PerformanceTiming.secureConnectionStart /en-US/docs/Web/API/PerformanceTiming/secureConnectionStart /en-US/docs/Web/API/PerformanceTiming.unloadEventEnd /en-US/docs/Web/API/PerformanceTiming/unloadEventEnd /en-US/docs/Web/API/PerformanceTiming.unloadEventStart /en-US/docs/Web/API/PerformanceTiming/unloadEventStart +/en-US/docs/Web/API/PerformanceTiming/MsFirstPaint /en-US/docs/Web/API/PerformanceTiming /en-US/docs/Web/API/Performance_API/Navigation_timing/Using_Navigation_Timing /en-US/docs/Web/API/Performance_API/Navigation_timing /en-US/docs/Web/API/Performance_API/Resource_Timing/Using_the_Resource_Timing_API /en-US/docs/Web/API/Performance_API/Resource_timing /en-US/docs/Web/API/PeriodicSyncManager/getTags() /en-US/docs/Web/API/PeriodicSyncManager/getTags @@ -10146,7 +10152,6 @@ /en-US/docs/Web/API/Window/convertPointFromPageToNode /en-US/docs/Web/API/Window/webkitConvertPointFromPageToNode /en-US/docs/Web/API/Window/crypto /en-US/docs/Web/API/crypto_property /en-US/docs/Web/API/Window/fetch /en-US/docs/Web/API/fetch -/en-US/docs/Web/API/Window/indexedDB /en-US/docs/Web/API/indexedDB /en-US/docs/Web/API/Window/minimize /en-US/docs/Web/API/Window /en-US/docs/Web/API/Window/mozAnimationStartTime /en-US/docs/Web/API/Animation/startTime /en-US/docs/Web/API/Window/mozPaintCount /en-US/docs/Web/API/Window @@ -10254,7 +10259,7 @@ /en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap /en-US/docs/Web/API/createImageBitmap /en-US/docs/Web/API/WindowOrWorkerGlobalScope/crossOriginIsolated /en-US/docs/Web/API/crossOriginIsolated /en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch /en-US/docs/Web/API/fetch -/en-US/docs/Web/API/WindowOrWorkerGlobalScope/indexedDB /en-US/docs/Web/API/indexedDB +/en-US/docs/Web/API/WindowOrWorkerGlobalScope/indexedDB /en-US/docs/Web/API/Window/indexedDB /en-US/docs/Web/API/WindowOrWorkerGlobalScope/isSecureContext /en-US/docs/Web/API/isSecureContext /en-US/docs/Web/API/WindowOrWorkerGlobalScope/origin /en-US/docs/Web/API/origin /en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask /en-US/docs/Web/API/queueMicrotask @@ -10308,7 +10313,6 @@ /en-US/docs/Web/API/WorkerGlobalScope/close /en-US/docs/Web/API/DedicatedWorkerGlobalScope/close /en-US/docs/Web/API/WorkerGlobalScope/console /en-US/docs/Web/API/console /en-US/docs/Web/API/WorkerGlobalScope/fetch /en-US/docs/Web/API/fetch -/en-US/docs/Web/API/WorkerGlobalScope/indexedDB /en-US/docs/Web/API/indexedDB /en-US/docs/Web/API/WorkerGlobalScope/onclose /en-US/docs/Web/API/DedicatedWorkerGlobalScope/close /en-US/docs/Web/API/WorkerGlobalScope/onerror /en-US/docs/Web/API/WorkerGlobalScope/error_event /en-US/docs/Web/API/WorkerGlobalScope/onlanguagechange /en-US/docs/Web/API/WorkerGlobalScope/languagechange_event @@ -10654,6 +10658,7 @@ /en-US/docs/Web/API/form.submit /en-US/docs/Web/API/HTMLFormElement/submit /en-US/docs/Web/API/form.target /en-US/docs/Web/API/HTMLFormElement/target /en-US/docs/Web/API/html.version /en-US/docs/Web/API/HTMLHtmlElement/version +/en-US/docs/Web/API/indexedDB /en-US/docs/Web/API/Window/indexedDB /en-US/docs/Web/API/mozRTCSessionDescription /en-US/docs/Web/API/RTCSessionDescription /en-US/docs/Web/API/mozRTCSessionDescription.sdp /en-US/docs/Web/API/RTCSessionDescription/sdp /en-US/docs/Web/API/mozRTCSessionDescription.type /en-US/docs/Web/API/RTCSessionDescription/type @@ -11293,6 +11298,7 @@ /en-US/docs/Web/CSS/-webkit-justify-content /en-US/docs/Web/CSS/justify-content /en-US/docs/Web/CSS/-webkit-linear-gradient /en-US/docs/Web/CSS/gradient/linear-gradient /en-US/docs/Web/CSS/-webkit-mask /en-US/docs/Web/CSS/mask +/en-US/docs/Web/CSS/-webkit-mask-attachment /en-US/docs/Web/CSS /en-US/docs/Web/CSS/-webkit-mask-clip /en-US/docs/Web/CSS/mask-clip /en-US/docs/Web/CSS/-webkit-mask-image /en-US/docs/Web/CSS/mask-image /en-US/docs/Web/CSS/-webkit-mask-origin /en-US/docs/Web/CSS/mask-origin diff --git a/files/en-us/_wikihistory.json b/files/en-us/_wikihistory.json index c93699aa0905d21..e3102006de1b5ee 100644 --- a/files/en-us/_wikihistory.json +++ b/files/en-us/_wikihistory.json @@ -15600,10 +15600,6 @@ "freaktechnik" ] }, - "Mozilla/Add-ons/WebExtensions/Firefox_workflow_overview": { - "modified": "2020-06-22T16:29:35.038Z", - "contributors": ["Erman", "irenesmith", "hellosct1", "rebloor"] - }, "Mozilla/Add-ons/WebExtensions/Implement_a_settings_page": { "modified": "2020-06-22T16:29:12.277Z", "contributors": [ @@ -38297,18 +38293,6 @@ "JesseW" ] }, - "Web/API/HTMLElement/mscandidatewindowhide_event": { - "modified": "2019-03-18T21:30:58.857Z", - "contributors": ["mattwojo"] - }, - "Web/API/HTMLElement/mscandidatewindowshow_event": { - "modified": "2019-03-18T21:30:59.572Z", - "contributors": ["mattwojo"] - }, - "Web/API/HTMLElement/mscandidatewindowupdate_event": { - "modified": "2019-03-18T21:28:43.354Z", - "contributors": ["mattwojo"] - }, "Web/API/HTMLElement/nonce": { "modified": "2020-10-15T22:00:37.198Z", "contributors": [ @@ -45093,10 +45077,6 @@ "modified": "2020-10-15T21:52:30.457Z", "contributors": ["fscholz", "jpmedley", "wolenetz", "foolip", "Sheppy"] }, - "Web/API/MediaError/msExtendedCode": { - "modified": "2019-03-23T22:00:50.075Z", - "contributors": ["ExE-Boss", "mattwojo", "erikadoyle"] - }, "Web/API/MediaKeyMessageEvent": { "modified": "2020-10-15T21:33:46.465Z", "contributors": [ @@ -52457,10 +52437,6 @@ "teoli" ] }, - "Web/API/PerformanceTiming/MsFirstPaint": { - "modified": "2019-03-18T21:32:14.582Z", - "contributors": ["mattwojo", "erikadoyle"] - }, "Web/API/PerformanceTiming/connectEnd": { "modified": "2020-10-15T21:24:41.930Z", "contributors": ["fscholz", "abbycar", "khushboo_Dwivedi", "teoli"] @@ -67195,6 +67171,20 @@ "JesseW" ] }, + "Web/API/Window/indexedDB": { + "modified": "2020-10-15T21:25:18.475Z", + "contributors": [ + "sideshowbarker", + "mfluehr", + "fscholz", + "jpmedley", + "nmve", + "arronei", + "chrisdavidmills", + "libbymc", + "teoli" + ] + }, "Web/API/Window/innerHeight": { "modified": "2020-11-20T13:42:29.125Z", "contributors": [ @@ -71565,20 +71555,6 @@ "kscarfone" ] }, - "Web/API/indexedDB": { - "modified": "2020-10-15T21:25:18.475Z", - "contributors": [ - "sideshowbarker", - "mfluehr", - "fscholz", - "jpmedley", - "nmve", - "arronei", - "chrisdavidmills", - "libbymc", - "teoli" - ] - }, "Web/API/isSecureContext": { "modified": "2020-10-15T21:51:32.759Z", "contributors": [ @@ -73065,23 +73041,6 @@ "Sebastianz" ] }, - "Web/CSS/-webkit-mask-attachment": { - "modified": "2020-10-15T21:08:25.190Z", - "contributors": [ - "ddbeck", - "Sheppy", - "ExE-Boss", - "fscholz", - "wbamberg", - "Sebastianz", - "Jeremie", - "kscarfone", - "teoli", - "berkerpeksag", - "grendel", - "barlow" - ] - }, "Web/CSS/-webkit-mask-box-image": { "modified": "2020-10-15T21:08:28.807Z", "contributors": [ diff --git a/files/en-us/glossary/accessible_name/index.md b/files/en-us/glossary/accessible_name/index.md index 01dea816e3f174a..554671ccc3a8dd2 100644 --- a/files/en-us/glossary/accessible_name/index.md +++ b/files/en-us/glossary/accessible_name/index.md @@ -12,11 +12,11 @@ Accessible names convey the purpose or intent of the element. This helps users u Depending on the element and the HTML markup, the value of the accessible name may be derived from visible (e.g., the text within {{HTMLElement("figcaption")}}) or invisible (e.g., the `aria-label` attribute set on an element) content, or a combination of both. How an element's accessible name is determined is based on the [accessible name calculation](https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/#name_calculation), which is different for different elements. -It is best to use visible text as the accessible names. Many elements, including {{HTMLElement("a")}}, {{HTMLElement("td")}} and {{HTMLElement("button")}}, get their name from their contents. For example, given `Bar`, the accessible name is "Bar." +It is best to use visible text as the accessible name. Many elements, including {{HTMLElement("a")}}, {{HTMLElement("td")}} and {{HTMLElement("button")}}, can get their accessible name from their content. For example, given `Bar`, the accessible name of this hyperlink is "Bar." -Other elements get their accessible name from the content of associated elements. For some parent elements, like {{HTMLElement("fieldset")}}, {{HTMLElement("table")}}, and {{HTMLElement("figure")}}, if those elements contain a descendant {{HTMLElement("fieldset")}}, {{HTMLElement("caption")}}, or {{HTMLElement("figcaption")}}, respectively, the association is automatic. For some other elements, like {{HTMLElement("textarea")}} and {{HTMLElement("input")}}, the accessible name also comes from an associated element, the {{HTMLElement("label")}} element, but that association has to explicitly set with a `for` attribute value on the `