diff --git a/.prettierignore b/.prettierignore index 9030ef035119b9..ceb86c0ffbdbe5 100644 --- a/.prettierignore +++ b/.prettierignore @@ -119,7 +119,6 @@ build/ /files/ru/webassembly/**/*.md # zh-cn -/files/zh-cn/learn/**/*.md /files/zh-cn/learn/css/**/*.md /files/zh-cn/learn/html/**/*.md /files/zh-cn/learn/javascript/**/*.md diff --git a/files/zh-cn/learn/accessibility/css_and_javascript/index.md b/files/zh-cn/learn/accessibility/css_and_javascript/index.md index cabbf54f269a93..c1cd3489f3481d 100644 --- a/files/zh-cn/learn/accessibility/css_and_javascript/index.md +++ b/files/zh-cn/learn/accessibility/css_and_javascript/index.md @@ -64,7 +64,8 @@ h1 { font-size: 5rem; } -p, li { +p, +li { line-height: 1.5; font-size: 1.6rem; } @@ -85,13 +86,16 @@ p, li { ```html

The water is very hot.

-

Water droplets collecting on surfaces is called condensation.

+

+ Water droplets collecting on surfaces is called condensation. +

``` 你可能希望向强调的文本添加一些简单的颜色: ```css -strong, em { +strong, +em { color: #a60000; } ``` @@ -103,7 +107,10 @@ strong, em { 允许缩写、首字母缩略词或初始化与其扩展关联的元素: ```html -

Web content is marked up using HTML.

+

+ Web content is marked up using + HTML. +

``` 同样,你可能希望以某种简单方式设置样式: @@ -131,7 +138,9 @@ a { color: #ff0000; } -a:hover, a:visited, a:focus { +a:hover, +a:visited, +a:focus { color: #a60000; text-decoration: none; } @@ -157,7 +166,7 @@ a:active { ```html
- +
``` @@ -248,7 +257,7 @@ JavaScript 还可能会中断无障碍,具体取决于其使用方式。 ```html - + ``` 我们仅在提交表单时执行验证。这样,我们就不会过于频繁地更新 UI,反之则可能混淆屏幕阅读器(可能还有其他)用户: @@ -257,16 +266,16 @@ JavaScript 还可能会中断无障碍,具体取决于其使用方式。 form.onsubmit = validate; function validate(e) { - errorList.innerHTML = ''; - for(var i = 0; i < formItems.length; i++) { + errorList.innerHTML = ""; + for (var i = 0; i < formItems.length; i++) { var testItem = formItems[i]; - if(testItem.input.value === '') { - errorField.style.left = '360px'; + if (testItem.input.value === "") { + errorField.style.left = "360px"; createLink(testItem); } } - if(errorList.innerHTML !== '') { + if (errorList.innerHTML !== "") { e.preventDefault(); } } @@ -282,11 +291,15 @@ function validate(e) { ```js function createLink(testItem) { - var listItem = document.createElement('li'); - var anchor = document.createElement('a'); - anchor.textContent = testItem.input.name + ' field is empty: fill in your ' + testItem.input.name + '.'; - anchor.href = '#' + testItem.input.name; - anchor.onclick = function() { + var listItem = document.createElement("li"); + var anchor = document.createElement("a"); + anchor.textContent = + testItem.input.name + + " field is empty: fill in your " + + testItem.input.name + + "."; + anchor.href = "#" + testItem.input.name; + anchor.onclick = function () { testItem.input.focus(); }; listItem.appendChild(anchor); @@ -304,8 +317,7 @@ function createLink(testItem) { ```html ``` diff --git a/files/zh-cn/learn/accessibility/html/index.md b/files/zh-cn/learn/accessibility/html/index.md index 761440760e6d45..33bdc74e77d6d7 100644 --- a/files/zh-cn/learn/accessibility/html/index.md +++ b/files/zh-cn/learn/accessibility/html/index.md @@ -1,5 +1,5 @@ --- -title: 'HTML:无障碍的良好基础' +title: "HTML:无障碍的良好基础" slug: Learn/Accessibility/HTML --- @@ -83,11 +83,17 @@ slug: Learn/Accessibility/HTML

My subheading

-

This is the first subsection of my document. I'd love people to be able to find this content!

+

+ This is the first subsection of my document. I'd love people to be able to + find this content! +

My 2nd subheading

-

This is the second subsection of my content. I think is more interesting than the last one.

+

+ This is the second subsection of my content. I think is more interesting than + the last one. +

``` 我们已经准备了一个更长的文本版本,供您试用于屏幕阅读器(请查看 [good-semantics.html](http://mdn.github.io/learning-area/accessibility/html/good-semantics.html))。如果您尝试在此过程中导航,您将看到这非常容易导航: @@ -100,25 +106,26 @@ slug: Learn/Accessibility/HTML 人们有时会使用表现性 HTML 和换行符来编写标题,段落等,如下所示: ```html -My heading -

+My heading

This is the first section of my document. -

+

I'll add another paragraph here too. -

+

1. Here is -

+

2. a list for -

+

3. you to read -

+

My subheading -

-This is the first subsection of my document. I'd love people to be able to find this content! -

+

+This is the first subsection of my document. I'd love people to be able to find +this content! +

My 2nd subheading -

-This is the second subsection of my content. I think is more interesting than the last one. +

+This is the second subsection of my content. I think is more interesting than +the last one. ``` 如果你使用屏幕阅读器试用更长内容的版本(请查阅 [bad-semantics.html](http://mdn.github.io/learning-area/accessibility/html/bad-semantics.html)),你不会有一个很好的经验 — 屏幕阅读器没有任何东西可以用作路标,所以你无法检索有用的目录,整个页面被看作一个巨大的块,所以它只是一次读出所有的内容。 @@ -144,9 +151,7 @@ This is the second subsection of my content. I think is more interesting than th -

Header

- @@ -165,7 +170,7 @@ This is the second subsection of my content. I think is more interesting than th
- +
@@ -174,28 +179,22 @@ This is the second subsection of my content. I think is more interesting than th - - - + -

Related

- - - - + @@ -223,7 +222,6 @@ This is the second subsection of my content. I think is more interesting than th
-

Article heading

@@ -236,7 +234,6 @@ This is the second subsection of my content. I think is more interesting than th -
@@ -271,7 +268,10 @@ UI 控件无障碍的一个关键方面是,默认情况下,浏览器允许

This is a link to Mozilla.

-

Another link, to the Mozilla Developer Network.

+

+ Another link, to the + Mozilla Developer Network. +

Buttons

@@ -286,11 +286,11 @@ UI 控件无障碍的一个关键方面是,默认情况下,浏览器允许
- +
- +
@@ -322,7 +322,9 @@ UI 控件无障碍的一个关键方面是,默认情况下,浏览器允许 ```html
Click me!
-
Click me too!
+
+ Click me too! +
And me!
``` @@ -334,8 +336,9 @@ UI 控件无障碍的一个关键方面是,默认情况下,浏览器允许 虽然上面的添加允许我们用 `tab` 选择按钮,但它不允许我们通过 `Enter / Return` 键来激活它们。要做到这一点,我们必须添加下面的 JS 小绝招(JavaScript trickery): ```js -document.onkeydown = function(e) { - if(e.keyCode === 13) { // The Enter/Return key +document.onkeydown = function (e) { + if (e.keyCode === 13) { + // The Enter/Return key document.activeElement.onclick(e); } }; @@ -360,13 +363,19 @@ document.onkeydown = function(e) { 确保您的标签在上下文中有意义,可以单独阅读,也可以在他们所在的段落的上下文中进行阅读。例如,下面显示了良好链接文本的示例: ```html -

Whales are really awesome creatures. Find out more about whales.

+

+ Whales are really awesome creatures. + Find out more about whales. +

``` 但这是不好的链接文字: ```html -

Whales are really awesome creatures. To find more out about whales, click here.

+

+ Whales are really awesome creatures. To find more out about whales, + click here. +

``` > **备注:** 您可以在我们的[创建超链接](/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks)文章中找到更多关于链接实现和最佳实践的信息。您还可以在 [good-links.html](https://mdn.github.io/learning-area/accessibility/html/good-links.html) 和 [bad-links.html](https://mdn.github.io/learning-area/accessibility/html/bad-links.html) 中看到一些好的和不好的例子。 @@ -374,7 +383,7 @@ document.onkeydown = function(e) { 表单标签也很重要,可以让您了解您需要输入每个表单输入的内容。以下似乎是一个足够合理的例子: ```html example-bad -Fill in your name: +Fill in your name: ``` 但是,这对于残疾用户来说并不是那么有用。在上面的示例中,没有任何内容将标签与表单输入明确关联。因此如果看不到它,请让用户明确该如何填写。如果您使用某些屏幕阅读器访问该屏幕,则只能按照“编辑文本”(“edit text”)的方式给出说明。 @@ -384,7 +393,7 @@ Fill in your name: ```html example-good
- +
``` @@ -441,19 +450,23 @@ Fill in your name: 我们编写了一个简单的例子, [accessible-image.html](http://mdn.github.io/learning-area/accessibility/html/accessible-image.html) ,它具有相同图像的四个副本: ```html - + -A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth. +A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth. -A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth. +A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth. + - - -

The Mozilla red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth.

+

+ The Mozilla red Tyrannosaurus Rex: A two legged dinosaur standing upright like + a human, with small arms, and a large head with lots of sharp teeth. +

``` 第一张图片,当用屏幕阅读器查看时,并不真正为用户提供很多帮助 - 例如 VoiceOver 会读出“/dinosaur.png,image” 。它读出文件名以尝试提供一些帮助。在这个例子中,用户至少知道它是某种恐龙,但通常文件可以用机器生成的文件名(例如来自数码相机)上传,这些文件名可能不会提供图像内容的信息。 @@ -475,9 +488,9 @@ Fill in your name: 我们再来看看第四种方法: ```html - + -

The Mozilla red Tyrannosaurus ...

+

The Mozilla red Tyrannosaurus ...

``` 在这种情况下,我们不使用“alt”属性 —— 相反,我们已经将图像的描述作为常规文本段落给出,并给出它的“id”,然后使用“`aria-labelledby`”属性并链接到对应“`id`”,它使屏幕阅读器将该段落用作该图像的替代文本/标签。如果您想将相同的文本用作多个图像的标签,这是特别有用的 - 这是使用“`alt`”不可能实现的。 @@ -489,7 +502,7 @@ Fill in your name: 图像还有其他机制可用于提供描述性文字。例如,有一个 `longdesc` 属性用于指向包含图像的扩展描述的单独 Web 文档,例如: ```html - + ``` 这听起来像个好主意,尤其是对于像大图表这样的信息图,其中有很多信息可能可以表示为可访问的数据表(请参阅上一部分)。但是,屏幕阅读器不支持`longdesc`,非屏幕阅读器用户完全无法访问内容。将长描述包含在与图像相同的页面中,或者通过常规链接链接到它可能会更好。 @@ -498,8 +511,11 @@ HTML5 包含两个新元素 - `{{htmlelement("figure")}}` 和`{{htmlelement("fig ```html
- The Mozilla Tyrannosaurus -
A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth.
+ The Mozilla Tyrannosaurus +
+ A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a + human, with small arms, and a large head with lots of sharp teeth. +
``` @@ -509,7 +525,7 @@ HTML5 包含两个新元素 - `{{htmlelement("figure")}}` 和`{{htmlelement("fig ```html

- + Tyrannosaurus Rex: the king of the dinosaurs

``` diff --git a/files/zh-cn/learn/accessibility/mobile/index.md b/files/zh-cn/learn/accessibility/mobile/index.md index 53f37f42562e4c..93a742387d931a 100644 --- a/files/zh-cn/learn/accessibility/mobile/index.md +++ b/files/zh-cn/learn/accessibility/mobile/index.md @@ -186,11 +186,11 @@ iOS 操作系统内置了移动版旁白(VoiceOver)。 如果你尝试通过键盘或触摸来控制我们的 [simple-box-drag.html](https://github.com/mdn/learning-area/blob/main/accessibility/mobile/simple-box-drag.html) 示例([查看实时示例](https://mdn.github.io/learning-area/accessibility/mobile/simple-box-drag.html)),你将发现问题。它发生的原因是我们用了下面的代码: ```js -div.onmousedown = function() { +div.onmousedown = function () { initialBoxX = div.offsetLeft; initialBoxY = div.offsetTop; movePanel(); -} +}; document.onmouseup = stopMove; ``` @@ -198,12 +198,12 @@ document.onmouseup = stopMove; 要启用其他形式的控制,你需要使用其他等效的事件代替,比如在触屏设备上用 touch 事件: ```js -div.ontouchstart = function(e) { +div.ontouchstart = function (e) { initialBoxX = div.offsetLeft; initialBoxY = div.offsetTop; positionHandler(e); movePanel(); -} +}; panel.ontouchend = stopMove; ``` diff --git a/files/zh-cn/learn/accessibility/multimedia/index.md b/files/zh-cn/learn/accessibility/multimedia/index.md index 0b3773c4542712..6bfa8f6825eb21 100644 --- a/files/zh-cn/learn/accessibility/multimedia/index.md +++ b/files/zh-cn/learn/accessibility/multimedia/index.md @@ -42,8 +42,9 @@ original_slug: learn/Accessibility/多媒体 示例: ```html -A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth. +A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth. ``` ## 可访问的音频和视频控件 @@ -56,17 +57,23 @@ HTML5 视频和音频实例甚至附带一组内置控件,允许您直接在 ```html -
+
``` @@ -100,9 +107,12 @@ HTML5 视频和音频共享 API — HTML Media Element — 允许您将自定义 ```html
@@ -300,9 +310,9 @@ This is the second. ```html ``` diff --git a/files/zh-cn/learn/accessibility/wai-aria_basics/index.md b/files/zh-cn/learn/accessibility/wai-aria_basics/index.md index 74efb73455c721..e44d55b3e78771 100644 --- a/files/zh-cn/learn/accessibility/wai-aria_basics/index.md +++ b/files/zh-cn/learn/accessibility/wai-aria_basics/index.md @@ -49,8 +49,7 @@ slug: Learn/Accessibility/WAI-ARIA_basics 另一个例子:应用开始支持一些复杂的类型输入,像是日期选择器可选择日期,抑或是范围选择器可以用滑块选择值,HTML5 提供了以下的类型: ```html - - + ``` 他对于跨浏览器的支持并不好,而且他的样式修改也很麻烦,这使得他在网页的集成设计上难以有所用途。所以我们常常会用 JavaScript 库来做这事,所以会用一系列嵌套的 div 或者带有 class 的 table 元素,然后用 CSS 来制定样式,JavaScript 来控制行为。 @@ -118,7 +117,9 @@ WAI-ARIA 给浏览器增加了 [`role`](https://www.w3.org/TR/wai-aria-1.1/#role

...

-

- 3 tasks remaining -

+

3 tasks remaining

    + aria-labelledby="list-heading">
  • @@ -221,8 +218,7 @@ function App(props) {
      + aria-labelledby="list-heading">
    ``` `role` 属性帮助辅助技术解释一个标签代表哪种元素。默认情况下,`
      ` 被视为一个列表,但我们即将添加的样式将改变它。添加 `role` 将恢复 `ul` 元素的“列表”含义。如果你想了解更多关于为什么要这样做,你可以看看 [Scott O'Hara's article, "Fixing Lists"](https://www.scottohara.me/blog/2019/01/12/lists-and-safari.html). @@ -232,10 +228,8 @@ function App(props) { 最后,我们列表项中的标签和输入有一些 JSX 特有的属性: ```html - - + + ``` `` 标签中的 `defaultChecked` 属性告诉 React 最初要检查这个复选框。如果我们像在普通的 HTML 中那样使用 `checked`,React 会在浏览器控制台中记录一些与处理复选框事件有关的警告,这是我们不想要的。现在不用太担心这个问题——我们将在以后使用事件的时候讨论这个问题。 @@ -311,7 +305,9 @@ body { width: 100%; max-width: 68rem; margin: 0 auto; - font: 1.6rem/1.25 Arial, sans-serif; + font: + 1.6rem/1.25 Arial, + sans-serif; background-color: #f5f5f5; color: #4d4d4d; } @@ -404,7 +400,9 @@ body { margin: 2rem 0 4rem 0; padding: 1rem; position: relative; - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 2.5rem 5rem 0 rgba(0, 0, 0, 0.1); + box-shadow: + 0 2px 4px 0 rgba(0, 0, 0, 0.2), + 0 2.5rem 5rem 0 rgba(0, 0, 0, 0.1); } @media screen and (min-width: 550px) { .todoapp { diff --git a/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_computed_properties/index.md b/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_computed_properties/index.md index e56e13820191db..6b9af565e1c040 100644 --- a/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_computed_properties/index.md +++ b/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_computed_properties/index.md @@ -40,7 +40,10 @@ slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_computed_pro 现在我们想为待办事项列表添加一个摘要计数器。这在为用户提供帮助的同时,也保留了列表的标签作为辅助。如果我们在待办事项列表中完成了 5 项中的 2 项,那么我们的摘要可以是“已完成 2/5”。似乎我们应该这样做: ```html -

      \{{ToDoItems.filter(item => item.done).length}} out of \{{ToDoItems.length}} items completed

      +

      + \{{ToDoItems.filter(item => item.done).length}} out of + \{{ToDoItems.length}} items completed +

      ``` 这个值将在每次渲染时重新计算。对于像当前这样较小的应用程序,这可能并不不会产生什么影响。但是对于更大的应用程序,或者当表达式更复杂时,这可能会导致严重的性能问题。 @@ -70,7 +73,10 @@ computed: {

      \{{listSummary}}

      • - +
      ``` @@ -86,8 +92,12 @@ computed: { 把 `ToDoItem.vue` 中的 `` 元素改成下面这样: ```html - + ``` 因为我们只需要触发 `checkbox-changed` 事件,所以我们可以在标签中内联使用 `$emit()` 方法。 @@ -104,8 +114,11 @@ updateDoneStatus(toDoId) { 我们想在 `ToDoItem` 触发 `checkbox-changed` 事件时运行此方法,并传入它的 `item.id` 作为参数。将你的 `` 标签改成下面这样: ```html - + ``` diff --git a/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_first_component/index.md b/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_first_component/index.md index 9d53f487d2756e..726594e5aa48a5 100644 --- a/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_first_component/index.md +++ b/files/zh-cn/learn/tools_and_testing/client-side_javascript_frameworks/vue_first_component/index.md @@ -66,14 +66,14 @@ slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_compon 1. 现在在你的组件模板中添加一个空的`
      `。 2. 在那个 `
      ` 里面,让我们添加一个 `checkbox` 和一个对应的 `label`。给复选框添加一个 `id`,并添加一个 `for` 属性,将复选框映射到标签上,如下所示: - ```html - - ``` + ```html + + ``` ### 在应用程序中使用 TodoItem 组件 @@ -82,22 +82,22 @@ slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_compon 1. 再次打开`App.vue`文件。 2. 在` - ``` + + ``` 3. 新建一个 HTML 表单来允许我们输入新的待办项并把它提交到 app。我们需要一个 [``](/zh-CN/docs/Web/HTML/Element/form),它里面包含一个 [`