{
  "synthetic": true,
  "execution": "Teaching record only; no live integration tested",
  "slug": "icon-command-accessible-name-contract",
  "group": "accessible-content",
  "title": [
    "An icon command needs a name that identifies its object",
    "图标按钮的名称，要能说明操作对象"
  ],
  "intro": [
    "A customer portal may show three identical download icons beside three documents. A user navigating by button name needs to know which one downloads the quote. Commission meaningful names tied to the document, with a stable relationship between visible action and accessible name.",
    "客户门户在三份文件旁放相同下载图标时，按按钮名称导航的用户需要知道哪个下载报价。应验收与文件绑定的明确名称，以及可见操作与可访问名称的对应。"
  ],
  "facts": [
    [
      "The W3C button pattern requires an accessible label, supplied by button text or naming attributes such as aria-labelledby or aria-label. Button activation and focus behaviour also depend on the action.",
      "W3C按钮模式要求可访问名称，可来自按钮文字、aria-labelledby或aria-label；激活后的焦点行为还须依动作决定。",
      "https://www.w3.org/WAI/ARIA/apg/patterns/button/"
    ]
  ],
  "example": [
    [
      [
        "Q18 quote, P7 plan, T2 terms; each icon named “Download”",
        "Button list contains three identical names",
        "Cannot identify target without extra context; improve the contract"
      ],
      [
        "报价Q18、图纸P7、条款T2都叫下载",
        "按钮列表三个相同名称",
        "缺少对象辨识，须改交付规则"
      ]
    ],
    [
      [
        "Q18 icon named “Download quote Q18”",
        "Name identifies action+document",
        "Expected Q18 action; visible context still agrees"
      ],
      [
        "Q18按钮名“下载报价Q18”",
        "包含动作及文件",
        "预期操作Q18，可见上下文也应一致"
      ]
    ],
    [
      [
        "aria-labelledby points to missing idquote18",
        "No valid referenced label or fallback in this fixture",
        "Reject missing name evidence"
      ],
      [
        "aria-labelledby引用不存在的quote18",
        "本例无有效标签或后备名称",
        "拒收名称缺失"
      ]
    ],
    [
      [
        "Rename visible document toQ19 but keep labelQ18",
        "Names disagree with current object",
        "Reject stale label before release"
      ],
      [
        "可见文件改Q19，名称仍Q18",
        "名称与当前对象不符",
        "发布前拒收旧标签"
      ]
    ]
  ],
  "steps": [
    [
      "List each repeated icon action and its object ID/title. Decide whether visible text, an associated heading or an explicit label will supply the name.",
      "列出重复图标动作及对象ID标题，确定名称来自可见文字、相关标题还是明确标签。"
    ],
    [
      "Inspect the actual accessibility tree and navigate by role/name in the supported browser. Activate only synthetic test actions and verify the chosen object.",
      "检查真实可访问树，按角色名称导航；只激活合成测试动作，核对选中对象。"
    ],
    [
      "Repeat after renaming, sorting and removing a document. A test that only counts non-empty attributes will miss names that identify the wrong file.",
      "重命名、排序及删除一份测试文件后复测；只统计属性非空会漏掉指错文件的名称。"
    ]
  ],
  "result": [
    "The key improvement is object identity, not adding “button” to every label. Q18 andQ19 must remain distinguishable after a content update. The missing-ID row also shows why source markup alone cannot replace the browser’s computed accessibility representation.",
    "重点是对象身份，不是在每个名称加“按钮”。更新后Q18和Q19仍须可区分；缺ID例也说明源码属性不能代替浏览器计算后的可访问表示。"
  ],
  "accept": [
    "Require a meaningful computed name and matching actual action for every repeated command. Verify keyboard activation and expected focus continuation.",
    "每个重复操作均须计算后名称明确、实际动作匹配，并核对键盘激活及后续焦点。"
  ],
  "limit": [
    "Synthetic documents only; no real download, enquiry or deletion. This is a supplier acceptance specification, not a tested component or full conformance statement.",
    "仅合成文件，未下载真实文件、发询盘或删除资料；是供应商验收规格，不是已测组件或完整合规声明。"
  ],
  "oldLinks": []
}
