{"id":183,"date":"2026-06-22T10:46:26","date_gmt":"2026-06-22T02:46:26","guid":{"rendered":"https:\/\/yykcj.com\/?p=183"},"modified":"2026-06-22T10:46:26","modified_gmt":"2026-06-22T02:46:26","slug":"web-%e6%97%a0%e9%9a%9c%e7%a2%8d-a11y-%e5%ae%9e%e6%88%98%e6%8c%87%e5%8d%97%ef%bc%9a%e4%bb%8e-aria-%e5%88%b0%e9%94%ae%e7%9b%98%e5%af%bc%e8%88%aa%e7%9a%84%e5%ae%8c%e6%95%b4%e5%ae%9e%e7%8e%b0","status":"publish","type":"post","link":"https:\/\/yykcj.com\/?p=183","title":{"rendered":"Web \u65e0\u969c\u788d (A11y) \u5b9e\u6218\u6307\u5357\uff1a\u4ece ARIA \u5230\u952e\u76d8\u5bfc\u822a\u7684\u5b8c\u6574\u5b9e\u73b0"},"content":{"rendered":"<h2>\u4e3a\u4ec0\u4e48 Web \u65e0\u969c\u788d\u5982\u6b64\u91cd\u8981\uff1f<\/h2>\n<p>Web \u65e0\u969c\u788d\uff08Accessibility\uff0c\u7b80\u79f0 A11y\uff09\u786e\u4fdd\u6240\u6709\u7528\u6237\uff0c\u5305\u62ec\u6b8b\u969c\u4eba\u58eb\uff0c\u90fd\u80fd\u5e73\u7b49\u5730\u8bbf\u95ee\u548c\u4f7f\u7528\u7f51\u7ad9\u3002\u636e\u7edf\u8ba1\uff0c\u5168\u7403\u7ea6 15% \u7684\u4eba\u53e3\u6709\u67d0\u79cd\u5f62\u5f0f\u7684\u6b8b\u75be\u3002\u5ffd\u89c6\u65e0\u969c\u788d\u4e0d\u4ec5\u4f1a\u5931\u53bb\u5927\u91cf\u7528\u6237\uff0c\u8fd8\u53ef\u80fd\u8fdd\u53cd\u6cd5\u5f8b\uff08\u5982 ADA\u3001WCAG\uff09\u3002\u7136\u800c\uff0c\u8bb8\u591a\u5f00\u53d1\u8005\u8ba4\u4e3a\u65e0\u969c\u788d\u53ea\u662f\u201c\u6dfb\u52a0 alt \u6587\u672c\u201d\uff0c\u5b9e\u9645\u4e0a\u5b83\u6d89\u53ca\u8bed\u4e49\u5316\u7ed3\u6784\u3001ARIA\u3001\u7126\u70b9\u7ba1\u7406\u7b49\u591a\u4e2a\u5c42\u9762\u3002<\/p>\n<p>\u672c\u6587\u5c06\u5e26\u4f60\u4ece\u96f6\u5b9e\u73b0\u4e00\u4e2a\u65e0\u969c\u788d\u7684\u4ea4\u4e92\u7ec4\u4ef6\uff0c\u6db5\u76d6\u4ee5\u4e0b\u6700\u4f73\u5b9e\u8df5\uff1a<\/p>\n<ul>\n<li>\u8bed\u4e49\u5316 HTML \u4e0e ARIA \u7684\u6b63\u786e\u4f7f\u7528<\/li>\n<li>\u952e\u76d8\u5bfc\u822a\u4e0e\u7126\u70b9\u7ba1\u7406<\/li>\n<li>\u5c4f\u5e55\u9605\u8bfb\u5668\u652f\u6301<\/li>\n<li>\u5e38\u89c1\u9677\u9631\u4e0e\u8c03\u8bd5\u6280\u5de7<\/li>\n<\/ul>\n<h2>\u51c6\u5907\u9879\u76ee<\/h2>\n<p>\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u81ea\u5b9a\u4e49\u4e0b\u62c9\u83dc\u5355\uff08Select\uff09\uff0c\u56e0\u4e3a\u539f\u751f <code><select><\/code> \u5728\u6837\u5f0f\u4e0a\u53d7\u9650\uff0c\u4f46\u81ea\u5b9a\u4e49\u7248\u672c\u5e38\u5e38\u5ffd\u7565\u65e0\u969c\u788d\u3002\u5f00\u59cb\u524d\uff0c\u786e\u4fdd\u4f60\u7684\u73af\u5883\u652f\u6301 ES6+ \u548c CSS3\u3002<\/p>\n<pre><code class=\"language-html\">\n&lt;!DOCTYPE html&gt;\n&lt;html lang=&quot;zh-CN&quot;&gt;\n&lt;head&gt;\n  &lt;meta charset=&quot;UTF-8&quot;&gt;\n  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;\n  &lt;title&gt;A11y \u4e0b\u62c9\u83dc\u5355\u793a\u4f8b&lt;\/title&gt;\n  &lt;style&gt;\n    \/* \u6837\u5f0f\u7a0d\u540e\u6dfb\u52a0 *\/\n  &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;div id=&quot;app&quot;&gt;&lt;\/div&gt;\n  &lt;script src=&quot;script.js&quot;&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n<h2>\u7b2c\u4e00\u6b65\uff1a\u8bed\u4e49\u5316\u7ed3\u6784\u4e0e ARIA \u89d2\u8272<\/h2>\n<p>\u81ea\u5b9a\u4e49\u4e0b\u62c9\u83dc\u5355\u9700\u8981\u6a21\u62df\u539f\u751f select \u7684\u884c\u4e3a\u3002\u9996\u5148\u5b9a\u4e49\u6309\u94ae\u548c\u5217\u8868\u7684\u8bed\u4e49\uff1a<\/p>\n<ul>\n<li>\u6309\u94ae\u4f7f\u7528 <code><button><\/code> \u5143\u7d20\uff08\u539f\u751f\u53ef\u805a\u7126\uff09<\/li>\n<li>\u5217\u8868\u4f7f\u7528 <code>\n<ul><\/code>\uff0c\u5e76\u6dfb\u52a0 <code>role=\"listbox\"<\/code><\/li>\n<li>\u6bcf\u4e2a\u9009\u9879\u4f7f\u7528 <code>\n<li><\/code>\uff0c\u6dfb\u52a0 <code>role=\"option\"<\/code><\/li>\n<li>\u4f7f\u7528 <code>aria-expanded<\/code> \u8868\u793a\u5c55\u5f00\u72b6\u6001<\/li>\n<li>\u4f7f\u7528 <code>aria-activedescendant<\/code> \u6216 <code>aria-selected<\/code> \u6307\u793a\u5f53\u524d\u9009\u9879<\/li>\n<\/ul>\n<pre><code class=\"language-html\">\n&lt;div class=&quot;custom-select&quot;&gt;\n  &lt;button \n    id=&quot;select-button&quot; \n    aria-haspopup=&quot;listbox&quot; \n    aria-expanded=&quot;false&quot;\n    aria-labelledby=&quot;select-label&quot;\n  &gt;\n    \u9009\u62e9\u989c\u8272\n  &lt;\/button&gt;\n  &lt;ul \n    id=&quot;select-listbox&quot; \n    role=&quot;listbox&quot; \n    aria-labelledby=&quot;select-label&quot;\n    tabindex=&quot;-1&quot;\n  &gt;\n    &lt;li role=&quot;option&quot; aria-selected=&quot;false&quot; data-value=&quot;red&quot;&gt;\u7ea2\u8272&lt;\/li&gt;\n    &lt;li role=&quot;option&quot; aria-selected=&quot;false&quot; data-value=&quot;green&quot;&gt;\u7eff\u8272&lt;\/li&gt;\n    &lt;li role=&quot;option&quot; aria-selected=&quot;false&quot; data-value=&quot;blue&quot;&gt;\u84dd\u8272&lt;\/li&gt;\n  &lt;\/ul&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n<p><strong>\u6ce8\u610f<\/strong>\uff1a<code>aria-labelledby<\/code> \u6307\u5411\u4e00\u4e2a\u6807\u7b7e\u5143\u7d20\uff0c\u8fd9\u91cc\u6211\u4eec\u5047\u8bbe\u6709\u4e00\u4e2a <code><span id=\"select-label\">\u9009\u62e9\u989c\u8272<\/span><\/code>\u3002\u786e\u4fdd\u6bcf\u4e2a\u53ef\u4ea4\u4e92\u5143\u7d20\u90fd\u6709\u53ef\u8bbf\u95ee\u7684\u540d\u79f0\u3002<\/p>\n<h2>\u7b2c\u4e8c\u6b65\uff1a\u952e\u76d8\u4ea4\u4e92\u4e0e\u7126\u70b9\u7ba1\u7406<\/h2>\n<p>\u539f\u751f select \u652f\u6301\u65b9\u5411\u952e\u3001Enter\u3001Esc \u7b49\u3002\u6211\u4eec\u9700\u8981\u6a21\u62df\u8fd9\u4e9b\u884c\u4e3a\u3002<\/p>\n<ul>\n<li>\u6309\u94ae\u83b7\u5f97\u7126\u70b9\u65f6\uff0c\u6309 Enter\/Space \u5c55\u5f00\u5217\u8868<\/li>\n<li>\u5c55\u5f00\u540e\uff0c\u7126\u70b9\u81ea\u52a8\u79fb\u5230\u5217\u8868\uff08\u6216\u4f7f\u7528 <code>aria-activedescendant<\/code> \u7ba1\u7406\u865a\u62df\u7126\u70b9\uff09<\/li>\n<li>\u65b9\u5411\u952e\u4e0a\u4e0b\u79fb\u52a8\u9009\u9879<\/li>\n<li>Enter\/Space \u786e\u8ba4\u9009\u62e9\uff0cEsc \u5173\u95ed\u5217\u8868\u5e76\u8fd4\u56de\u6309\u94ae<\/li>\n<li>Tab \u952e\u5173\u95ed\u5217\u8868\u5e76\u79fb\u52a8\u5230\u4e0b\u4e00\u4e2a\u5143\u7d20<\/li>\n<\/ul>\n<p>\u6211\u4eec\u4f7f\u7528 <code>aria-activedescendant<\/code> \u6765\u6307\u793a\u5f53\u524d\u6d3b\u52a8\u9009\u9879\uff0c\u800c\u65e0\u9700\u79fb\u52a8\u5b9e\u9645\u7126\u70b9\u3002\u8fd9\u6837\u5c4f\u5e55\u9605\u8bfb\u5668\u80fd\u6b63\u786e\u6717\u8bfb\u9009\u9879\u3002<\/p>\n<pre><code class=\"language-javascript\">\nconst button = document.getElementById(&#x27;select-button&#x27;);\nconst listbox = document.getElementById(&#x27;select-listbox&#x27;);\nconst options = listbox.querySelectorAll(&#x27;[role=&quot;option&quot;]&#x27;);\nlet currentIndex = -1;\n\nbutton.addEventListener(&#x27;click&#x27;, () =&gt; {\n  const expanded = button.getAttribute(&#x27;aria-expanded&#x27;) === &#x27;true&#x27;;\n  if (expanded) {\n    closeListbox();\n  } else {\n    openListbox();\n  }\n});\n\nbutton.addEventListener(&#x27;keydown&#x27;, (e) =&gt; {\n  if (e.key === &#x27;Enter&#x27; || e.key === &#x27; &#x27;) {\n    e.preventDefault();\n    openListbox();\n  }\n});\n\nlistbox.addEventListener(&#x27;keydown&#x27;, (e) =&gt; {\n  switch (e.key) {\n    case &#x27;Escape&#x27;:\n      closeListbox();\n      button.focus();\n      break;\n    case &#x27;ArrowDown&#x27;:\n      e.preventDefault();\n      moveFocus(1);\n      break;\n    case &#x27;ArrowUp&#x27;:\n      e.preventDefault();\n      moveFocus(-1);\n      break;\n    case &#x27;Enter&#x27;:\n    case &#x27; &#x27;:\n      e.preventDefault();\n      selectOption(currentIndex);\n      closeListbox();\n      button.focus();\n      break;\n    case &#x27;Tab&#x27;:\n      closeListbox();\n      break;\n  }\n});\n\nfunction openListbox() {\n  button.setAttribute(&#x27;aria-expanded&#x27;, &#x27;true&#x27;);\n  listbox.hidden = false;\n  listbox.focus();\n  \/\/ \u9ed8\u8ba4\u805a\u7126\u7b2c\u4e00\u4e2a\u9009\u9879\n  if (currentIndex === -1) {\n    currentIndex = 0;\n  }\n  updateActiveDescendant();\n}\n\nfunction closeListbox() {\n  button.setAttribute(&#x27;aria-expanded&#x27;, &#x27;false&#x27;);\n  listbox.hidden = true;\n  listbox.removeAttribute(&#x27;aria-activedescendant&#x27;);\n}\n\nfunction moveFocus(direction) {\n  const newIndex = currentIndex + direction;\n  if (newIndex &gt;= 0 &amp;&amp; newIndex &lt; options.length) {\n    currentIndex = newIndex;\n    updateActiveDescendant();\n  }\n}\n\nfunction updateActiveDescendant() {\n  const id = `option-${currentIndex}`;\n  options.forEach((opt, idx) =&gt; {\n    opt.id = `option-${idx}`;\n    opt.setAttribute(&#x27;aria-selected&#x27;, idx === currentIndex ? &#x27;true&#x27; : &#x27;false&#x27;);\n  });\n  listbox.setAttribute(&#x27;aria-activedescendant&#x27;, id);\n  \/\/ \u6eda\u52a8\u5230\u53ef\u89c1\u533a\u57df\uff08\u53ef\u9009\uff09\n  options[currentIndex].scrollIntoView({ block: &#x27;nearest&#x27; });\n}\n\nfunction selectOption(index) {\n  if (index === -1) return;\n  const selected = options[index];\n  button.textContent = selected.textContent;\n  \/\/ \u66f4\u65b0\u9690\u85cf\u7684 input \u503c\uff08\u5982\u679c\u6709\u8868\u5355\uff09\n}\n<\/code><\/pre>\n<p><strong>\u6ce8\u610f<\/strong>\uff1a\u5f53\u5217\u8868\u5173\u95ed\u65f6\uff0c\u786e\u4fdd <code>aria-expanded<\/code> \u4e3a <code>false<\/code>\uff0c\u5e76\u4e14\u5217\u8868\u9690\u85cf\u3002\u4f7f\u7528 <code>hidden<\/code> \u5c5e\u6027\u6216 <code>display: none<\/code>\uff0c\u4f46\u4e0d\u8981\u4ec5\u7528 CSS \u9690\u85cf\uff0c\u56e0\u4e3a\u5c4f\u5e55\u9605\u8bfb\u5668\u53ef\u80fd\u4ecd\u4f1a\u8bfb\u53d6\u3002<\/p>\n<h2>\u7b2c\u4e09\u6b65\uff1a\u6837\u5f0f\u4e0e\u89c6\u89c9\u63d0\u793a<\/h2>\n<p>\u9664\u4e86\u529f\u80fd\uff0c\u89c6\u89c9\u4e0a\u4e5f\u8981\u8003\u8651\u4f4e\u89c6\u529b\u7528\u6237\uff1a<\/p>\n<ul>\n<li>\u7126\u70b9\u6307\u793a\u5668\uff08outline\uff09\u4e0d\u80fd\u79fb\u9664\uff0c\u9664\u975e\u81ea\u5b9a\u4e49\u66f4\u660e\u663e\u7684\u6837\u5f0f<\/li>\n<li>\u989c\u8272\u5bf9\u6bd4\u5ea6\u7b26\u5408 WCAG AA \u6807\u51c6\uff08\u81f3\u5c11 4.5:1\uff09<\/li>\n<li>\u4e0d\u8981\u4ec5\u4f9d\u8d56\u989c\u8272\u4f20\u8fbe\u4fe1\u606f\uff08\u5982\u9519\u8bef\u72b6\u6001\u52a0\u56fe\u6807\uff09<\/li>\n<\/ul>\n<pre><code class=\"language-css\">\n.custom-select {\n  position: relative;\n  width: 200px;\n}\n\n#select-button {\n  width: 100%;\n  padding: 8px 12px;\n  background: #fff;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  cursor: pointer;\n  text-align: left;\n}\n\n#select-button:focus {\n  outline: 2px solid #005fcc;\n  outline-offset: 2px;\n}\n\n#select-listbox {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  width: 100%;\n  margin: 4px 0;\n  padding: 0;\n  list-style: none;\n  background: #fff;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  max-height: 200px;\n  overflow-y: auto;\n  z-index: 10;\n}\n\n#select-listbox[hidden] {\n  display: none;\n}\n\n[role=&quot;option&quot;] {\n  padding: 8px 12px;\n  cursor: pointer;\n}\n\n[role=&quot;option&quot;][aria-selected=&quot;true&quot;] {\n  background: #e0e0e0;\n}\n\n[role=&quot;option&quot;]:hover {\n  background: #f0f0f0;\n}\n<\/code><\/pre>\n<p><strong>\u6ce8\u610f<\/strong>\uff1a\u4e0d\u8981\u4f7f\u7528 <code>:focus<\/code> \u4f2a\u7c7b\u5728 <code>[role=\"option\"]<\/code> \u4e0a\uff0c\u56e0\u4e3a\u7126\u70b9\u5b9e\u9645\u5728 listbox \u4e0a\u3002\u4f7f\u7528 <code>aria-selected<\/code> \u9ad8\u4eae\u5f53\u524d\u9009\u9879\u3002<\/p>\n<h2>\u7b2c\u56db\u6b65\uff1a\u5c4f\u5e55\u9605\u8bfb\u5668\u6d4b\u8bd5<\/h2>\n<p>\u4f7f\u7528 NVDA \u6216 VoiceOver \u6d4b\u8bd5\uff1a<\/p>\n<ol>\n<li>\u805a\u7126\u6309\u94ae\uff0c\u5c4f\u5e55\u9605\u8bfb\u5668\u5e94\u6717\u8bfb\u201c\u9009\u62e9\u989c\u8272 \u6309\u94ae \u6298\u53e0\u201d<\/li>\n<li>\u6309 Enter \u5c55\u5f00\uff0c\u6717\u8bfb\u201c\u5217\u8868 \u9009\u9879 \u7ea2\u8272 \u5f53\u524d \u672a\u9009\u4e2d \u51713\u9879\u201d<\/li>\n<li>\u65b9\u5411\u952e\u79fb\u52a8\uff0c\u6717\u8bfb\u9009\u9879\u540d\u79f0\u548c\u9009\u4e2d\u72b6\u6001<\/li>\n<li>\u6309 Enter \u9009\u62e9\uff0c\u6717\u8bfb\u201c\u7ea2\u8272 \u6309\u94ae \u6298\u53e0\u201d<\/li>\n<\/ol>\n<p>\u5982\u679c\u6717\u8bfb\u4e0d\u6b63\u786e\uff0c\u68c0\u67e5 ARIA \u5c5e\u6027\u548c\u6807\u7b7e\u3002<\/p>\n<h2>\u5e38\u89c1\u9677\u9631\u4e0e\u8c03\u8bd5\u6280\u5de7<\/h2>\n<ol>\n<li><strong>\u7126\u70b9\u9677\u9631<\/strong>\uff1a\u786e\u4fdd\u7528\u6237\u80fd\u901a\u8fc7 Tab \u952e\u79bb\u5f00\u7ec4\u4ef6\u3002<\/li>\n<li><strong>\u9690\u85cf\u5185\u5bb9<\/strong>\uff1a\u4f7f\u7528 <code>hidden<\/code> \u5c5e\u6027\u800c\u975e <code>display: none<\/code>\uff0c\u4f46\u6ce8\u610f <code>hidden<\/code> \u5bf9 CSS \u52a8\u753b\u4e0d\u53cb\u597d\u3002<\/li>\n<li><strong>\u52a8\u6001\u5185\u5bb9<\/strong>\uff1a\u4f7f\u7528 <code>aria-live<\/code> \u533a\u57df\u901a\u77e5\u53d8\u5316\uff0c\u4f46\u4e0d\u8981\u6ee5\u7528\u3002<\/li>\n<li><strong>\u989c\u8272\u5bf9\u6bd4\u5ea6<\/strong>\uff1a\u4f7f\u7528\u5de5\u5177\uff08\u5982 WebAIM Contrast Checker\uff09\u68c0\u67e5\u3002<\/li>\n<li><strong>\u9f20\u6807\u4e8b\u4ef6<\/strong>\uff1a\u4e0d\u8981\u4f9d\u8d56 <code>click<\/code> \u4f5c\u4e3a\u552f\u4e00\u4ea4\u4e92\uff0c\u952e\u76d8\u7528\u6237\u9700\u8981 <code>keydown<\/code>\u3002<\/li>\n<\/ol>\n<p><strong>\u8c03\u8bd5\u6280\u5de7<\/strong>\uff1a<\/p>\n<ul>\n<li>\u4f7f\u7528\u6d4f\u89c8\u5668 DevTools \u7684 Accessibility \u9762\u677f\u68c0\u67e5 ARIA \u5c5e\u6027<\/li>\n<li>\u4f7f\u7528 aXe \u6216 Lighthouse \u81ea\u52a8\u68c0\u6d4b\u95ee\u9898<\/li>\n<\/ul>\n<h2>\u5b8c\u6574\u4ee3\u7801\u4e0e\u6f14\u793a<\/h2>\n<p>\u5c06\u4ee5\u4e0a HTML\u3001CSS\u3001JS \u5408\u5e76\uff0c\u5373\u53ef\u5f97\u5230\u4e00\u4e2a\u5b8c\u6574\u53ef\u7528\u7684\u65e0\u969c\u788d\u4e0b\u62c9\u83dc\u5355\u3002<\/p>\n<h2>\u603b\u7ed3<\/h2>\n<p>Web \u65e0\u969c\u788d\u4e0d\u662f\u53ef\u9009\u9879\uff0c\u800c\u662f\u73b0\u4ee3\u5f00\u53d1\u7684\u5fc5\u5907\u6280\u80fd\u3002\u901a\u8fc7\u8bed\u4e49\u5316 HTML\u3001\u6b63\u786e\u4f7f\u7528 ARIA\u3001\u5b9e\u73b0\u952e\u76d8\u5bfc\u822a\u548c\u7126\u70b9\u7ba1\u7406\uff0c\u4f60\u53ef\u4ee5\u6784\u5efa\u51fa\u5305\u5bb9\u6027\u5f3a\u7684\u7ec4\u4ef6\u3002\u8bb0\u4f4f\uff1a\u65e0\u969c\u788d\u53d7\u76ca\u7684\u4e0d\u4ec5\u662f\u6b8b\u969c\u7528\u6237\uff0c\u6240\u6709\u7528\u6237\u90fd\u80fd\u83b7\u5f97\u66f4\u597d\u7684\u4f53\u9a8c\uff08\u5982\u952e\u76d8\u5bfc\u822a\u63d0\u9ad8\u6548\u7387\uff09\u3002<\/p>\n<p><strong>\u4e0b\u4e00\u6b65<\/strong>\uff1a\u5b66\u4e60 WCAG 2.1 \u6807\u51c6\uff0c\u5c1d\u8bd5\u4e3a\u590d\u6742\u7ec4\u4ef6\uff08\u5982\u6a21\u6001\u6846\u3001\u6811\u5f62\u89c6\u56fe\uff09\u5b9e\u73b0\u65e0\u969c\u788d\u3002<\/p>\n<h2>\u53c2\u8003\u8d44\u6e90<\/h2>\n<ul>\n<li>WAI-ARIA Authoring Practices<\/li>\n<li>MDN Web Docs: Accessibility<\/li>\n<li>WebAIM: Keyboard Accessibility<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u6df1\u5165\u8bb2\u89e3 Web \u65e0\u969c\u788d\u7684\u6838\u5fc3\u5b9e\u8df5\uff0c\u5305\u62ec\u8bed\u4e49\u5316 HTML\u3001ARIA \u5c5e\u6027\u3001\u952e\u76d8\u5bfc\u822a\u548c\u7126\u70b9\u7ba1\u7406\uff0c\u63d0\u4f9b\u53ef\u8fd0\u884c\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u5e38\u89c1\u5751\u70b9\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u6784\u5efa\u771f\u6b63\u5305\u5bb9\u6027\u7684\u7528\u6237\u4f53\u9a8c\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4],"tags":[68,69,71,67,36,70],"class_list":["post-183","post","type-post","status-publish","format-standard","hentry","category-3","category-4","tag-a11y","tag-aria","tag-wcag","tag-web-","tag-36","tag-70"],"_links":{"self":[{"href":"https:\/\/yykcj.com\/index.php?rest_route=\/wp\/v2\/posts\/183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yykcj.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yykcj.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yykcj.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yykcj.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=183"}],"version-history":[{"count":0,"href":"https:\/\/yykcj.com\/index.php?rest_route=\/wp\/v2\/posts\/183\/revisions"}],"wp:attachment":[{"href":"https:\/\/yykcj.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yykcj.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yykcj.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}