# Table-cell diagnosis from installed source

Inspected on 2026-11-04 in the existing renderer environment: markdown-it-py 4.0.0 and Python-Markdown 3.10.2. The exact inspected functions and installed-file hashes are in `table-parser-source.txt`. The token records in `renderers/table-token-traces.json` were produced by the probe.

## Container creation precedes task recognition

In `markdown_it/rules_block/table.py`, `table()` creates `td_open`, an `inline` token whose content is the stripped cell string, and `td_close` for each data cell. In the actual trace for `table-list-markers`, the content `- [ ]` is inside that inline token. The trace has no `list_item_open` token. The cell has not entered the block-list parser just because its text starts with a hyphen.

In `markdown/extensions/tables.py`, `TableProcessor._build_row()` splits the row, creates `th` or `td` elements, and sets `c.text` from the stripped cell. That function does not send the cell through block-list parsing. This observation describes the installed function and tested extension set, not every third-party processor.

## Independent controls reveal different missing stages

The CommonMark configuration does not enable table parsing. With raw HTML allowed it nevertheless passes the input tags through in a paragraph containing pipe characters. Thus checkbox input counts alone are an invalid proxy for table-task support.

Enabling the markdown-it table rule creates the table but does not install task processing. Turning raw HTML off then escapes the input text while preserving the table. These are distinct state changes under otherwise matched source and options.

The Python-Markdown configuration enables tables and fenced code only. It preserves the static status text and raw HTML inputs, but leaves the bracket markers in both the table and outside-list controls. This does not establish what an untested task-list extension would do.

Pandoc's GFM reader emits task-list inputs for the outside-list control while leaving the bare, hyphen-prefixed, and br-prefixed table markers as text. This is evidence from the local Pandoc executable, not GitHub.com, GitLab, or an editor preview.

## Decision derived from the source and paired outputs

Inspect the container before editing the marker: no table calls for table support; a table with inline brackets calls for a status representation or explicit host table-task support; escaped HTML calls for a decision about HTML handling. Source persistence needs host integration beyond HTML emission. No browser interactions or source write-back were tested.

Official reference locations:

- https://github.github.com/gfm/#tables-extension-
- https://github.github.com/gfm/#task-list-items-extension-
- https://github.com/executablebooks/markdown-it-py/blob/v4.0.0/markdown_it/rules_block/table.py
- https://github.com/Python-Markdown/markdown/blob/3.10.2/markdown/extensions/tables.py

All accessed 2026-11-04. The diagnosis combines explicit source branches with this run's paired controls. It is an editorial inference, not a statement of universal renderer behavior.
