* Insert › Chart: create and edit column, bar, line, pie, area, scatter and doughnut charts (#409) - Chart model (wordcraft_doc::chart::ChartSpec): type (clustered/stacked column and bar, line, area, pie, doughnut, scatter), categories, series, title, legend, data labels; sanitized (255 series, 4000 points, 100k cells, 255-char text, non-finite values dropped). - DOCX: charts with a model are written as word/charts/chartN.xml (c:chartSpace, ECMA-376 §21.2, data as c:strLit/c:numLit, no c:externalData) with relationship and content type. On read, a chart part becomes editable only when writing its model again gives the same markup; every other chart stays read-only and kept as before (#319). - Drawing reuses read/chart.rs (the model is drawn from its generated part); data labels (c:dLbls showVal) are now drawn for bar, line, area, scatter, pie and doughnut charts. - Commands: insert.chart, chart.type, chart.editData, chart.title, chart.legend, chart.dataLabels (one undo step each); picture.size redraws an editable chart at its size. - UI: Insert › Chart gallery with previews drawn in code, Chart Design contextual tab, Edit Data grid dialog; strings in all 9 catalogs; catalog 408/439. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * #409: refresh catalog count and parity checklist after rebase --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
16 KiB
Where WordCraft falls short of Word
Last reviewed: 2026-10-10 · Last updated: 2026-10-11 · Change: trivial (#24 narrowed: Customize Keyboard and Customize Ribbon landed; previously trivial: formatting revisions landed, #41; previously trivial: Draw Table and Eraser landed, #303; previously minor: beta distance restated: ~15 points, ~150–230 h; previously: first version; every known shortfall from the 2026-10-10 re-measure, ranked) · Target: Microsoft Word (Microsoft 365) for Mac 16.113.4
The work list. One entry per shortfall, ranked by how much it stops a Word user from switching
(B = blocks beta). Each says what's missing, the evidence, who it hurts, an Opus 5.5 agent
wall-clock estimate, and which parity document tracks it. Agents: pick from the top, check open PRs
first (gh pr list), and update this file and the parity doc when a gap closes.
Ranked
| # | Gap | B | Evidence | Impact | Hours | Doc |
|---|---|---|---|---|---|---|
| 1 | DOCX never tested on real-world files. No corpus of files from Word, Google Docs, LibreOffice and Pages has been opened, rendered and round-tripped and compared with Word page by page | B | No corpus in the repo; crates/docx/tests are synthetic fixtures; "DOCX fidelity corpus: not started" since 2026-10-06 |
Everyone: the files people receive are the files that break | 30–50 | file-format-parity.md |
| 2 | Ink and drawing canvases are dropped on open and lost on save, silently; OLE objects show only their picture | B | No ink or drawing-canvas (wpc) handling in crates/docx; group shapes (wpg) read and written (#267). Charts and SmartArt are drawn (#292) and, with OLE objects, written back with all their parts on save (#319) |
Documents with diagrams drawn in Word or pen notes lose content without warning | 4–8 to preserve ink and drawing canvases; 45–70 to render and edit charts and SmartArt (#13) | file-format-parity.md |
| 3 | Crashes and freezes in the field: startup crash on Intel UHD Graphics (#170) (lag on GPUs without a DirectX 12 driver fixed, #316), freezes (#77, #59 Thai fonts, #31 font selector), no writes without admin on Windows 11 (#218), broken shape tool (#142), images can't be moved (#82) | B | 62 open issues, ~15 of them crashes, hangs or data-path failures | Anyone hit loses work or trust; the never-crash standard covers panics, not hangs or GPU driver faults | 20–30 | target-app-parity.md (Stability) |
| 4 | Pagination differs from Word: Aptos has no metric-matched substitute; legacy compatibility options ignored; no page-by-page comparison harness | B | layout-parity.md; typing-parity.md Known gaps | Page counts and line breaks differ, which matters for forms, legal and academic work | 30–50 + owner (font) | layout-parity.md |
| 5 | Content controls are lost (w:sdt unwrapped). Move tracking landed (#400): w:moveFrom/w:moveTo with their named ranges round-trip, a tracked cut and paste of a paragraph or sentence records a move, either end accepts/rejects both, green double strike/underline markup and "Moved from/to" balloons; still missing: drag-and-drop moves (no text drag yet) and move options in Track Changes Options. Formatting revisions landed (#41): w:rPrChange/w:pPrChange/w:tblPrChange/w:trPrChange/w:tcPrChange/w:sectPrChange/w:numberingChange round-trip, are recorded while tracking, accepted/rejected and shown in balloons; still missing: tracked style-definition changes and table/section changes made in WordCraft |
B | Issues #41, #400; source grep | Legal and editorial review workflows; templates with form controls | 5–8 | file-format-parity.md |
| 6 | No native printing on desktop: File › Print opens the PDF in the system viewer, which prints (#286); no print dialog of our own (printer, copies, ranges); web prints through the browser (#209) | B | ui.print → apps/wordcraft/src/print.rs; issue #15 |
Everyone who prints | 5–8 | hardware-parity.md |
| 7 | Dialog depth: 46 modal dialogs vs Word's ~100 (Compare, Protect, AutoCorrect, Options panes…) | B | Dialog enum in crates/ui-egui/src/dialogs.rs |
Power users reach for dialogs the ribbon alone doesn't cover | 11–19 | ui-parity.md |
| 8 | Proofing is English only; no language per run, no dictionaries for other languages | crates/proof has one dictionary; Word ships 120 proofing tools; issues #25, #40, #100 |
Every non-English writer | 25–45 | localization-parity.md | |
| 9 | Password-protected files can't be opened or saved | #55; docbin detects and refuses RC4/XOR |
Corporate and legal users | 6–10 | file-format-parity.md | |
| 10 | Objects: no group (#267 open), text in a freely rotated text box (free rotation and flips landed, #332; text direction, alignment and linked text boxes landed, #369; contour wrap and wrap side landed, #354), shape effects, WordArt, connectors, dragging members inside a Drawing Canvas (the canvas landed, #344) | parity-checklist.md (Shape Format 6/6, Layout › Group) | Newsletters, flyers, reports with diagrams | 20–30 | target-app-parity.md | |
| 11 | Interface languages: 8 of the 12 key languages missing (hi, ar, fr, id, de, ko, vi, pt-PT); no mirrored RTL interface; ~5% of strings still English in the six translated catalogs | localization-parity.md | Most of the world's writers | 50–80 | localization-parity.md | |
| 12 | Draw tab / ink: pens, pencil, highlighter, eraser, Select and Hide Ink landed (#307); Lasso Select, Add Pen, Ink to Shape and Ink Replay landed (#395); missing: Ink to Math, arrows in Ink to Shape, pressure, Word's own ink (w14:contentPart/InkML) |
parity-checklist.md (Draw 9/11) | Pen and tablet users | 4–8 | hardware-parity.md | |
| 13 | Charts and SmartArt editing (editing charts from Word, more chart types and formatting, SmartArt layouts) | insert.chart and Chart Design basics landed (#409): WordCraft's own charts are editable; charts from Word stay read-only (no embedded-workbook editing), no combo/3D/radar/stock charts, axis or series formatting; insert.smartArt missing |
Reports and business documents | 35–55 | target-app-parity.md | |
| 14 | .doc can't be written; metafile pictures and Word 6/95 files refused |
crates/docbin is read-only |
Users exchanging files with old Word or legacy systems | 25–40 | file-format-parity.md | |
| 15 | References depth: sources not saved in DOCX (#169 open); no EndNote/Mendeley desktop integration | Sources live only in the session (#169 open) | Students and researchers | 6–10 | target-app-parity.md | |
| 16 | Right-to-left completeness: kashida, RTL in HTML/ODT/RTF; eight older RTL bug reports to re-verify after #207 (#215, #211, #199, #66, #63, #48, #19). RTL tables and sections landed (#362) | layout-parity.md | Arabic, Persian, Hebrew writers | 7–11 | layout-parity.md | |
| 17 | East Asian typography: vertical text, Asian Typography options (Phonetic Guide landed, #288; Enclose Characters landed, #297; document grid landed, #391) | Catalog misses para.asianTypography |
Chinese, Japanese and Korean documents | 11–19 | layout-parity.md | |
| 18 | Screen-reader access to the document canvas untested | AccessKit enabled; no tests | Blind and low-vision users; public-sector procurement | 10–15 | ui-parity.md | |
| 19 | RTF and ODT depth: notes, comments, revisions, sections, RTL | ~1,500 lines each in crates/formats |
Users exchanging with LibreOffice or older tools | 18–27 | file-format-parity.md | |
| 20 | Performance on large real-world documents unmeasured (500+ pages, many pictures) | Only the 188-page sample benchmark | Thesis and book authors | 10–20 | layout-parity.md | |
| 21 | Mail merge data sources: no Outlook/Contacts, Access or database sources, no email merge; CSV, typed lists (#247) and Excel/OpenDocument spreadsheets (#334) only | Select Recipients reads .csv/.tsv, .xlsx/.xlsm and .ods | Office administrators | 4–8 | target-app-parity.md | |
| 22 | Ecosystem: no VBA execution (macros preserved only), no Office add-ins, no cloud storage, no real-time co-authoring | .docm keeps macros (#172) |
Enterprise users with macro templates; teams | 40–80 + owner decisions | target-app-parity.md | |
| 23 | PDF Reflow (open a PDF as an editable document, Word for Windows) | Users who edit PDFs they receive | 30–50 | file-format-parity.md | ||
| 24 | Default shortcuts: ~135 of Word's ~250 (#330, #339, #343; Customize Keyboard #368, Customize Ribbon and the Quick Access Toolbar #379 landed) | ui-parity.md | Power users | 4–7 | ui-parity.md | |
| 25 | In-app AI assistant (Copilot-style draft, rewrite, summarize) | Chat PR #178 open | Users expecting Copilot | 15–30 + owner (provider) | target-app-parity.md | |
| 26 | Minor formats: Flat OPC XML, Word 2003 XML, MHT, Works/WordPerfect | Rare | 20–35 | file-format-parity.md | ||
| 27 | View windows: Side by Side, Synchronous Scrolling, Arrange All, Switch Windows | parity-checklist.md (View 25/29) | Comparing documents | 3–5 | ui-parity.md | |
| 28 | Dictate | tools.dictate missing |
Dictation users | 8–15 + owner (speech model) | hardware-parity.md | |
| 29 | Equations: ink equations | #191 notes; long display equations wrap at operators (#326) | Maths-heavy documents | 2–3 | layout-parity.md |
Beta needs #1–#7 (~150–230 h with the stability and layout work they imply): they are the blocking gaps, and closing them lifts file formats, layout, stability and UI enough to take the full number from ~60% to ~75%. Everything else is depth on the way to full parity.
By kind
The same gaps grouped the way the parity documents are, for agents working in one area.
- Feature gaps: #2 (preserve), #5, #10, #12, #13, #15, #17, #21, #25, #27, #28, #29; Clipboard pane, Manage Styles, Group (open PRs exist for the first three — review and merge before re-implementing). Paste Special, Advanced Find, Column Selection, Style Inspector, custom table styles, and Draw Table and Eraser (#303) landed on 2026-10-10.
- UI/UX gaps: #7, #18, #24; crop handles on the canvas (rotation handle landed, #332); table column drag on the ruler (#49, #217); context menus for objects and tables; Linux title bar theming (#78).
- File-format gaps: #1, #2, #5, #9, #14, #19, #23, #26; embedded fonts; glossary/building blocks.
- Hardware gaps: #6, #12, #28; scanner/Continuity Camera insert; KDE soft text (#140).
- Localization gaps: #8, #11, #16, #17; native-speaker review of every catalog (human).
- Stability and performance gaps: #3, #20.
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-11 | trivial | Insert › Chart landed (#409); gap #13 narrowed to editing Word's charts, more types and SmartArt, 35–55 h |
| 2026-10-11 | trivial | Line Numbers, Hyphenation, Language, Envelopes and Labels dialogs landed (#407); gap #7 at 30 dialogs, 16–24 h; duplicated #7 rows merged |
| 2026-10-11 | trivial | Caption, Index, Mark Index Entry, Custom Table of Contents, Source Manager and Create/Edit Source dialogs landed (#402); removed from the dialog-depth list |
| 2026-10-11 | trivial | Document grid landed (#391); removed from the East Asian gap |
| 2026-10-11 | trivial | Move tracking landed (#400); gap #5 narrowed to content controls, 5–8 h |
| 2026-10-11 | trivial | #4: note options per section (below text, end of section, restart each section/page) and the Footnote and Endnote dialog (#385) |
| 2026-10-11 | trivial | #10: Shape Format › Text: text direction, align text and linked text boxes (#369) |
| 2026-10-11 | trivial | #16: right-to-left tables (w:bidiVisual) and sections (w:bidi) laid out mirrored, with table.rtl and layout.sectionRtl (#362) |
| 2026-10-11 | trivial | #4: columns balance before a continuous section break (#350) |
| 2026-10-11 | trivial | #21: Excel (.xlsx/.xlsm) and OpenDocument (.ods) spreadsheets as recipient lists (#334); hours 6–10 → 4–8 |
| 2026-10-11 | trivial | Insert › Icons landed (#309); removed from the objects gap |
| 2026-10-11 | trivial | #24 narrowed: Customize Ribbon and Quick Access Toolbar customization landed (#379); the default shortcuts remain |
| 2026-10-11 | trivial | #24 narrowed: Customize Keyboard landed (#368); Customize Ribbon and the Quick Access Toolbar remain |
| 2026-10-11 | trivial | #24: Word's field keys (Alt+F9, Shift+F9, Ctrl+Shift+F9, Ctrl+F11, Ctrl+Shift+F11, F11, Shift+F11) (#339) |
| 2026-10-10 | trivial | #24: 125 of ~250 keyboard shortcuts after #330 |
| 2026-10-11 | trivial | Collapsed duplicate rows left by parallel merges |
| 2026-10-11 | trivial | All 12 bibliography styles landed (#383); removed from References depth |
| 2026-10-11 | trivial | Formatting revisions landed (#41); gap #5 narrowed to move tracking and content controls, 8–12 h |
| 2026-10-11 | trivial | #12 narrowed: Lasso Select, Add Pen, Ink to Shape and Ink Replay landed (#395) |
| 2026-10-10 | trivial | Draw Table and Eraser landed (#303); removed from the feature-gap list |
| 2026-10-10 | trivial | Tabs and Borders and Shading dialogs landed (#320); removed from the dialog-depth list |
| 2026-10-10 | trivial | Columns, Symbol and Field dialogs landed (#321); removed from the dialog-depth list |
| 2026-10-10 | trivial | #2 narrowed: charts and SmartArt drawn (#292), and with OLE objects kept on save (#319); group shapes landed (#267); ink and drawing canvases remain |
| 2026-10-10 | trivial | #4: a document's own footnote separators and continuation notice are drawn and kept on save (#352) |
| 2026-10-10 | trivial | #4: long footnotes continue onto the next page (#352) |
| 2026-10-10 | trivial | Define New Multilevel List and Track Changes Options dialogs landed (#328); removed from the dialog-depth list |
| 2026-10-11 | trivial | Enclose Characters landed (#297); removed from the East Asian typography gap |
| 2026-10-11 | trivial | Phonetic Guide (ruby) landed (#288): gap 17 narrowed |
| 2026-10-10 | trivial | #10: wrap side (both sides, left, right, largest) for Square, Tight and Through objects (#354) |
| 2026-10-10 | trivial | #10: Tight and Through wrapping follow the object's outline (#354) |
| 2026-10-10 | trivial | #10: free rotation and flips for pictures, shapes and text boxes, with a rotation handle (#332); text boxes rotate their frame; their text stays upright |
| 2026-10-10 | trivial | #10: Drawing Canvas landed (#344); in-canvas dragging of members remains |
| 2026-10-10 | trivial | #29: long display equations wrap across lines (#326) |
| 2026-10-10 | trivial | #3: Windows lag on GPUs without a DirectX 12 driver fixed with an OpenGL fallback (#316) |
| 2026-10-10 | trivial | #6: desktop File › Print opens the system PDF viewer (#286) |
| 2026-10-10 | trivial | Table Properties dialog landed (#44); removed from the dialog-depth list |
| 2026-10-10 | trivial | Merged main: landed features removed from the feature-gap list |
| 2026-10-10 | minor | Beta note restated: full number back to the additive ~60% (method aligned with the standard, no new evidence) |
| 2026-10-10 | major | First version, from the full re-measure: 29 ranked gaps with evidence, impact and hours |
| 2026-10-10 | trivial | #307: Draw tab pens, eraser and Hide Ink landed; ink gap narrowed |