{
  "synthetic": true,
  "execution": "Teaching record only; no live integration tested",
  "slug": "comparison-table-header-map",
  "group": "accessible-data",
  "title": [
    "Make a comparison cell explain its row and column",
    "对比表的每个数，要能说明属于谁"
  ],
  "intro": [
    "A procurement comparison can look clear on a wide screen while losing the relationship between a fee, its plan and its billing period. Approve a header map before decorative table styling. Where possible, split a complex table into simpler tables rather than making readers reconstruct it.",
    "采购对比表在宽屏可能很清楚，但费用、套餐和计费周期的关系可能丢失。美化前先批准表头映射；能拆成简单表时，应避免让读者自己重组复杂结构。"
  ],
  "facts": [
    [
      "W3C WAI describes explicit id/headers associations for cells with multiple header levels when simpler row/column scope is insufficient.",
      "W3C WAI说明多层表头在简单行列scope不足时，可用id与headers明确关联。",
      "https://www.w3.org/WAI/tutorials/tables/multi-level/"
    ]
  ],
  "columns": [
    [
      "Synthetic data cell",
      "Required header meaning",
      "Expected reading"
    ],
    [
      "合成数据单元格",
      "必需表头含义",
      "预期读法"
    ]
  ],
  "example": [
    [
      [
        "id=cASetup; value 240",
        "planA + one-off + setup",
        "PlanA / one-off setup / AUD240"
      ],
      [
        "cASetup；值240",
        "套餐A＋一次性＋设置",
        "套餐A／一次性设置／AUD240"
      ]
    ],
    [
      [
        "id=cARun; value 30",
        "planA + monthly + support",
        "PlanA / monthly support / AUD30"
      ],
      [
        "cARun；值30",
        "套餐A＋每月＋支持",
        "套餐A／每月支持／AUD30"
      ]
    ],
    [
      [
        "id=cBSetup; value 0",
        "planB + one-off + setup",
        "PlanB / one-off setup / AUD0"
      ],
      [
        "cBSetup；值0",
        "套餐B＋一次性＋设置",
        "套餐B／一次性设置／AUD0"
      ]
    ],
    [
      [
        "Blank support cell",
        "No supplied quote",
        "Unknown, not free"
      ],
      [
        "支持费用空白",
        "没有提供报价",
        "未知，不是免费"
      ]
    ]
  ],
  "steps": [
    [
      "List exactly what each data cell must mean independently. Add a caption and units; keep omitted quote data visibly unknown. Do not merge unknown and zero into one dash.",
      "逐单元格列出独立含义，加表题及单位；缺报价明确未知，不能把未知与零都写成横线。"
    ],
    [
      "Prefer one table per billing period when that reduces complexity. If the structure remains multi-level, ask the developer to supply the cell-to-header mapping and valid unique header IDs.",
      "按计费周期拆表能降低复杂度时优先拆表；仍需多层时，要求开发者交付单元格与表头对应及唯一有效ID。"
    ],
    [
      "Test reading order and header announcements with the agreed browser/assistive-technology pair. Repeat on a narrow viewport; visual card conversion must preserve the same meaning.",
      "按约定浏览器与辅助技术核对读取顺序及表头播报；窄屏复测，改成卡片也须保留相同含义。"
    ]
  ],
  "result": [
    "AUD240 and AUD30 cannot be compared without the one-off/monthly distinction. The filled map gives reviewers an exact expected reading for each cell and catches a blank being displayed as zero. Semantic markup supports the relationship but still needs actual assistive-technology testing.",
    "若丢了一次性与每月的区别，240与30根本不能直接比较。填好的映射给审校者准确读法，并能发现空白被当零；语义标记支持关系，但仍需真实辅助技术测试。"
  ],
  "accept": [
    "A reviewer should identify plan, fee type, period and currency from every amount, using both visual and nonvisual navigation. A correctly aligned screenshot is insufficient.",
    "每笔金额都应能通过视觉及非视觉方式识别套餐、费用类型、周期及币种；对齐截图不足以验收。"
  ],
  "limit": [
    "Synthetic prices, not vendor quotes or a recommendation. No screen-reader test was performed by this worksheet and no full WCAG conformance is asserted.",
    "合成价格，不是供应商报价或推荐；本表不冒充读屏实测，也不声称全站WCAG合规。"
  ]
}
