{"id":1002,"date":"2026-03-06T22:35:51","date_gmt":"2026-03-06T14:35:51","guid":{"rendered":"https:\/\/mrc.som.nycu.edu.tw\/?page_id=1002"},"modified":"2026-03-07T00:21:05","modified_gmt":"2026-03-06T16:21:05","slug":"sitemap","status":"publish","type":"page","link":"https:\/\/mrc.som.nycu.edu.tw\/eng\/sitemap\/","title":{"rendered":"\u7db2\u7ad9\u5c0e\u89bd"},"content":{"rendered":"\n<p>\u672c\u7db2\u7ad9\u4f9d\u7121\u969c\u7919\u7db2\u9801\u8a2d\u8a08\u539f\u5247\u5efa\u7f6e\uff0c\u7db2\u7ad9\u7684\u4e3b\u8981\u5167\u5bb9\u5206\u70ba\u56db\u5927\u5340\u584a\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4e0a\u65b9\u529f\u80fd\u5340\u584a<\/li>\n\n\n\n<li>\u7db2\u7ad9\u641c\u5c0b\u5340\u584a<\/li>\n\n\n\n<li>\u4e2d\u592e\u5167\u5bb9\u5340\u584a<\/li>\n\n\n\n<li>\u4e0b\u65b9\u529f\u80fd\u5340\u584a<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\u672c\u7db2\u7ad9\u7684\u5feb\u901f\u9375\uff08Accesskey\uff09\u8a2d\u5b9a\u5982\u4e0b\uff1a<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Alt+U<\/strong>\uff1a\u4e0a\u65b9\u529f\u80fd\u5340\u584a\uff0c\u5305\u62ec\u56de\u9996\u9801\u3001\u4e3b\u9078\u55ae\u7b49\u3002<\/li>\n\n\n\n<li><strong>Alt+S<\/strong>\uff1a\u7db2\u7ad9\u641c\u5c0b\u5340\u584a\uff0c\u53ef\u8f38\u5165\u6587\u7ae0\u95dc\u9375\u5b57\u641c\u5c0b\u3002<\/li>\n\n\n\n<li><strong>Alt+C<\/strong>\uff1a\u4e2d\u592e\u5167\u5bb9\u5340\u584a\uff0c\u70ba\u672c\u9801\u4e3b\u8981\u5167\u5bb9\u5340\u3002<\/li>\n\n\n\n<li><strong>Alt+H<\/strong>\uff1a\u4e0b\u65b9\u529f\u80fd\u5340\u584a\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u5982\u679c\u60a8\u7684\u700f\u89bd\u5668\u662f Firefox\uff0c\u5feb\u901f\u9375\u7684\u4f7f\u7528\u65b9\u6cd5\u662f <strong>Shift + Alt + \u5feb\u901f\u9375\u5b57\u6bcd<\/strong>\uff0c\u4f8b\u5982 <strong>Shift + Alt + C<\/strong> \u6703\u8df3\u81f3\u7db2\u9801\u4e2d\u592e\u5167\u5bb9\u5340\u584a\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u9375\u76e4\u64cd\u4f5c\u8aaa\u660e<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tab<\/strong>\uff1a\u79fb\u52d5\u5230\u4e0b\u4e00\u500b\u53ef\u64cd\u4f5c\u5143\u4ef6\uff0c\u5982\u9023\u7d50\u3001\u6309\u9215\u3001\u641c\u5c0b\u6b04\u4f4d\u3001\u8f2a\u64ad\u63a7\u5236\u9375\u7b49\u3002<\/li>\n\n\n\n<li><strong>Shift + Tab<\/strong>\uff1a\u79fb\u52d5\u5230\u4e0a\u4e00\u500b\u53ef\u64cd\u4f5c\u5143\u4ef6\u3002<\/li>\n\n\n\n<li><strong>Enter<\/strong>\uff1a\u958b\u555f\u9023\u7d50\u6216\u555f\u7528\u6309\u9215\u3002<\/li>\n\n\n\n<li><strong>Space<\/strong>\uff1a\u555f\u7528\u6309\u9215\u3001\u64ad\u653e\uff0f\u66ab\u505c\u8f2a\u64ad\u7b49\u63a7\u5236\u9805\u3002<\/li>\n\n\n\n<li><strong>\u65b9\u5411\u9375 \u2190 \u2192 \/ \u2191 \u2193<\/strong>\uff1a\u53ef\u7528\u65bc\u9078\u55ae\u3001\u9801\u7c64\u3001\u8f2a\u64ad\u63a7\u5236\u6216\u90e8\u5206\u4e92\u52d5\u5143\u4ef6\u64cd\u4f5c\u3002<\/li>\n\n\n\n<li><strong>Home \/ End<\/strong>\uff1a\u82e5\u7126\u9ede\u4f4d\u65bc\u53ef\u652f\u63f4\u7684\u9801\u7c64\u6216\u6e05\u55ae\u5143\u4ef6\uff0c\u53ef\u5feb\u901f\u79fb\u81f3\u7b2c\u4e00\u9805\u6216\u6700\u5f8c\u4e00\u9805\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u672c\u7db2\u7ad9\u4e3b\u8981\u5167\u5bb9\u8aaa\u660e<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u4e0a\u65b9\u529f\u80fd\u5340\u584a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8df3\u81f3\u4e3b\u8981\u5167\u5bb9<\/li>\n\n\n\n<li>\u7db2\u7ad9\u6a19\u8a8c\uff0f\u56de\u9996\u9801<\/li>\n\n\n\n<li>\u4e3b\u9078\u55ae\n<ul class=\"wp-block-list\">\n<li>\u6700\u65b0\u6d88\u606f<\/li>\n\n\n\n<li>\u95dc\u65bc\u6211\u5011\n<ul class=\"wp-block-list\">\n<li>\u4e2d\u5fc3\u4e3b\u4efb<\/li>\n\n\n\n<li>\u4e2d\u5fc3\u526f\u4e3b\u4efb<\/li>\n\n\n\n<li>\u7814\u7a76\u5718\u968a<\/li>\n\n\n\n<li>\u78a9\u535a\u58eb\u751f<\/li>\n\n\n\n<li>\u884c\u653f\u4eba\u54e1<\/li>\n\n\n\n<li>\u5be6\u9a57\u5ba4\u5f71\u97f3\u4ecb\u7d39<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u696d\u52d9\u5167\u5bb9\n<ul class=\"wp-block-list\">\n<li>\u6838\u5fc3\u8a2d\u65bd<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u7814\u7a76\u8207\u6559\u5b78\n<ul class=\"wp-block-list\">\n<li>\u91cd\u8981\u7814\u7a76\u8a08\u756b<\/li>\n\n\n\n<li>\u7814\u7a76\u6210\u679c<\/li>\n\n\n\n<li>\u6559\u5b78\u8cc7\u6e90\u66a8\u7814\u8a0e\u6703\u8cc7\u6599<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u9023\u7d61\u6211\u5011<\/li>\n\n\n\n<li>\u7db2\u7ad9\u5c0e\u89bd<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u7db2\u7ad9\u641c\u5c0b\u5340\u584a<\/h3>\n\n\n\n<p>\u63d0\u4f9b\u7ad9\u5167\u641c\u5c0b\u529f\u80fd\uff0c\u53ef\u8f38\u5165\u95dc\u9375\u5b57\u67e5\u8a62\u7db2\u7ad9\u5167\u5bb9\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u4e2d\u592e\u5167\u5bb9\u5340\u584a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5716\u7247\u8f2a\u64ad<\/li>\n\n\n\n<li>\u6d3b\u52d5\u516c\u544a<\/li>\n\n\n\n<li>\u7814\u7a76\u6210\u679c<\/li>\n\n\n\n<li>\u5408\u4f5c\u5925\u4f34\u9023\u7d50<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. \u4e0b\u65b9\u529f\u80fd\u5340\u584a<\/h3>\n\n\n\n<p>\u5305\u542b\u9801\u5c3e\u8cc7\u8a0a\u8207\u7248\u6b0a\u8aaa\u660e\u3002<\/p>\n\n\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n  \/* =========================\n     1. \u53d6\u5f97\u4e3b\u8981\u5340\u584a\n  ========================= *\/\n  const header = document.querySelector('#header, header.ct-header, header');\n  const logoLink = document.querySelector(\n    '.site-logo-container, .custom-logo-link, .site-branding a[rel=\"home\"]'\n  );\n  const main = document.querySelector('#main, main.site-main, main');\n  const footer = document.querySelector('#footer, footer.ct-footer, footer');\n\n  const searchTrigger = document.querySelector(\n    '.ct-header-search[data-toggle-panel=\"#search-modal\"], button[aria-controls=\"search-modal\"]'\n  );\n  const searchModal = document.querySelector('#search-modal');\n  const searchInput = document.querySelector(\n    '#search-modal input[type=\"search\"], #search-modal .modal-field, form[role=\"search\"] input[type=\"search\"]'\n  );\n\n  const mainNav = document.querySelector('#header-menu-1, nav[aria-label=\"main menu\"]');\n\n  \/* =========================\n     2. \u8f14\u52a9\u51fd\u5f0f\n  ========================= *\/\n  function focusElement(el) {\n    if (!el) return;\n\n    try {\n      el.focus({ preventScroll: false });\n    } catch (e) {\n      el.focus();\n    }\n\n    if (typeof el.scrollIntoView === 'function') {\n      el.scrollIntoView({\n        block: 'start',\n        behavior: 'smooth'\n      });\n    }\n  }\n\n  function makeSectionFocusable(el, key, label) {\n    if (!el) return;\n\n    el.setAttribute('accesskey', key);\n\n    \/\/ \u975e\u539f\u751f\u53ef\u805a\u7126\u5143\u7d20\u624d\u88dc tabindex\n    if (!\/^(A|BUTTON|INPUT|SELECT|TEXTAREA)$\/.test(el.tagName)) {\n      if (!el.hasAttribute('tabindex')) {\n        el.setAttribute('tabindex', '-1');\n      }\n    }\n\n    if (label && !el.getAttribute('aria-label')) {\n      el.setAttribute('aria-label', label);\n    }\n  }\n\n  \/* =========================\n     3. \u8a2d\u5b9a\u4e3b\u5340\u584a Accesskey\n  ========================= *\/\n  \/\/ Alt+U\uff1a\u4e0a\u65b9\u529f\u80fd\u5340\u584a\uff0c\u512a\u5148\u653e\u5728 Logo\n  if (logoLink) {\n    makeSectionFocusable(logoLink, 'U', '\u56de\u9996\u9801\u8207\u4e0a\u65b9\u529f\u80fd\u5340\u584a');\n  } else {\n    makeSectionFocusable(header, 'U', '\u4e0a\u65b9\u529f\u80fd\u5340\u584a');\n  }\n\n  \/\/ Alt+S\uff1a\u641c\u5c0b\u5340\u584a\uff0c\u653e\u5728\u641c\u5c0b\u6309\u9215\n  if (searchTrigger) {\n    makeSectionFocusable(searchTrigger, 'S', '\u7db2\u7ad9\u641c\u5c0b\u5340\u584a');\n  }\n\n  \/\/ Alt+C\uff1a\u4e2d\u592e\u5167\u5bb9\n  if (main) {\n    makeSectionFocusable(main, 'C', '\u4e2d\u592e\u5167\u5bb9\u5340\u584a');\n  }\n\n  \/\/ Alt+H\uff1a\u9801\u5c3e\n  if (footer) {\n    makeSectionFocusable(footer, 'H', '\u4e0b\u65b9\u529f\u80fd\u5340\u584a');\n  }\n\n  \/\/ \u4e3b\u9078\u55ae aria-label \u6539\u4e2d\u6587\n  if (mainNav) {\n    mainNav.setAttribute('aria-label', '\u4e3b\u9078\u55ae');\n  }\n\n  \/* =========================\n     4. Alt+S \u4e0d\u8df3\u6389\n     - \u4e0d\u81ea\u52d5 click \u641c\u5c0b\u6309\u9215\n     - \u53ea\u805a\u7126\u641c\u5c0b\u6309\u9215\u6216\u5df2\u958b\u555f\u641c\u5c0b\u6b04\n  ========================= *\/\n  function openSearchAndFocus() {\n    \/\/ \u5982\u679c\u641c\u5c0b\u8996\u7a97\u5df2\u7d93\u958b\u555f\uff0c\u5c31\u76f4\u63a5\u805a\u7126\u641c\u5c0b\u6b04\n    if (searchInput && searchModal && !searchModal.hasAttribute('inert')) {\n      focusElement(searchInput);\n      return;\n    }\n\n    \/\/ \u4e0d\u4e3b\u52d5 click\uff0c\u53ea\u805a\u7126\u641c\u5c0b\u6309\u9215\n    if (searchTrigger) {\n      focusElement(searchTrigger);\n      return;\n    }\n\n    \/\/ \u82e5\u9801\u9762\u672c\u4f86\u5c31\u6709\u641c\u5c0b\u6b04\n    if (searchInput) {\n      focusElement(searchInput);\n      return;\n    }\n\n    \/\/ \u6700\u5f8c\u624d\u805a\u7126\u641c\u5c0b\u5c0d\u8a71\u6846\u5bb9\u5668\n    if (searchModal) {\n      focusElement(searchModal);\n    }\n  }\n\n  \/* =========================\n     5. \u5feb\u901f\u9375\u5099\u63f4\u8655\u7406\n     Chrome \/ Edge\uff1aAlt + U\/S\/C\/H\n     Firefox\uff1aShift + Alt + U\/S\/C\/H\n  ========================= *\/\n  document.addEventListener('keydown', function (e) {\n    const key = (e.key || '').toLowerCase();\n    const isFirefox = \/firefox\/i.test(navigator.userAgent);\n\n    const matched = isFirefox\n      ? (e.altKey && e.shiftKey && !e.ctrlKey && !e.metaKey)\n      : (e.altKey && !e.shiftKey && !e.ctrlKey && !e.metaKey);\n\n    if (!matched) return;\n    if (!['u', 's', 'c', 'h'].includes(key)) return;\n\n    e.preventDefault();\n\n    switch (key) {\n      case 'u':\n        focusElement(logoLink || header);\n        break;\n\n      case 's':\n        openSearchAndFocus();\n        break;\n\n      case 'c':\n        focusElement(main);\n        break;\n\n      case 'h':\n        focusElement(footer);\n        break;\n    }\n  });\n\n  \/* =========================\n     6. \u4fee\u6b63\u684c\u6a5f\u4e3b\u9078\u55ae v \u6309\u9215 aria-label\n  ========================= *\/\n  function getDirectMenuText(menuItem) {\n    const link = menuItem.querySelector(':scope > a.ct-menu-link, :scope > a');\n    if (!link) return '\u5b50\u9078\u55ae';\n\n    let text = '';\n\n    \/\/ \u53ea\u6293\u6587\u5b57\u7bc0\u9ede\uff0c\u907f\u514d\u628a\u7bad\u982d icon \u4e00\u8d77\u7b97\u9032\u53bb\n    link.childNodes.forEach(function (node) {\n      if (node.nodeType === Node.TEXT_NODE) {\n        text += node.textContent;\n      }\n    });\n\n    text = text.replace(\/\\s+\/g, ' ').trim();\n\n    if (!text) {\n      text = link.textContent.replace(\/\\s+\/g, ' ').trim();\n    }\n\n    return text || '\u5b50\u9078\u55ae';\n  }\n\n  function updateDesktopMenuToggleLabel(menuItem) {\n    const button = menuItem.querySelector(':scope > button.ct-toggle-dropdown-desktop-ghost');\n    if (!button) return;\n\n    const menuText = getDirectMenuText(menuItem);\n    const expanded = button.getAttribute('aria-expanded') === 'true';\n\n    button.setAttribute('type', 'button');\n    button.setAttribute('aria-haspopup', 'true');\n    button.setAttribute(\n      'aria-label',\n      expanded\n        ? menuText + '\u5b50\u9078\u55ae\uff0c\u5df2\u5c55\u958b'\n        : menuText + '\u5b50\u9078\u55ae\uff0c\u5df2\u6536\u5408'\n    );\n  }\n\n  const desktopMenuItems = document.querySelectorAll(\n    '#menu-main-menu > li.menu-item-has-children'\n  );\n\n  desktopMenuItems.forEach(function (menuItem) {\n    const button = menuItem.querySelector(':scope > button.ct-toggle-dropdown-desktop-ghost');\n    if (!button) return;\n\n    updateDesktopMenuToggleLabel(menuItem);\n\n    button.addEventListener('click', function () {\n      setTimeout(function () {\n        updateDesktopMenuToggleLabel(menuItem);\n      }, 80);\n    });\n\n    button.addEventListener('keydown', function () {\n      setTimeout(function () {\n        updateDesktopMenuToggleLabel(menuItem);\n      }, 80);\n    });\n  });\n\n  const desktopMenuRoot = document.querySelector('#menu-main-menu');\n  if (desktopMenuRoot) {\n    const observer = new MutationObserver(function () {\n      desktopMenuItems.forEach(updateDesktopMenuToggleLabel);\n    });\n\n    observer.observe(desktopMenuRoot, {\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['aria-expanded', 'class']\n    });\n  }\n\n  \/* =========================\n     7. \u53ef\u9078\uff1a\u624b\u6a5f\u9078\u55ae\u6309\u9215\u6587\u5b57\u66f4\u6e05\u695a\n  ========================= *\/\n  const mobileMenuTrigger = document.querySelector(\n    '.ct-header-trigger[aria-controls=\"offcanvas\"]'\n  );\n  if (mobileMenuTrigger) {\n    mobileMenuTrigger.setAttribute('aria-label', '\u958b\u555f\u4e3b\u9078\u55ae');\n  }\n\n  const mobileCloseBtn = document.querySelector('#offcanvas .ct-toggle-close');\n  if (mobileCloseBtn) {\n    mobileCloseBtn.setAttribute('aria-label', '\u95dc\u9589\u5074\u9078\u55ae');\n  }\n\n  const searchCloseBtn = document.querySelector('#search-modal .ct-toggle-close');\n  if (searchCloseBtn) {\n    searchCloseBtn.setAttribute('aria-label', '\u95dc\u9589\u641c\u5c0b\u4e92\u52d5\u8996\u7a97');\n  }\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7db2\u7ad9\u4f9d\u7121\u969c\u7919\u7db2\u9801\u8a2d\u8a08\u539f\u5247\u5efa\u7f6e\uff0c\u7db2\u7ad9\u7684\u4e3b\u8981\u5167\u5bb9\u5206\u70ba\u56db\u5927\u5340\u584a\uff1a \u672c\u7db2\u7ad9\u7684\u5feb\u901f\u9375\uff08Accesskey\uff09\u8a2d\u5b9a\u5982\u4e0b\uff1a  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1002","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/pages\/1002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/comments?post=1002"}],"version-history":[{"count":7,"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/pages\/1002\/revisions"}],"predecessor-version":[{"id":1031,"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/pages\/1002\/revisions\/1031"}],"wp:attachment":[{"href":"https:\/\/mrc.som.nycu.edu.tw\/eng\/wp-json\/wp\/v2\/media?parent=1002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}