Skip to content

Visio capability ledger ​

Full Microsoft Visio parity is a target, not a current claim. Snapshot: 2026-10-03.

Implementation status is based on source inspection. Test filenames identify evidence; current pass counts and limitations are recorded in verification.md. Generated fixtures and the original demo scene do not establish visual parity with Microsoft Visio.

CapabilityTargetCurrent stateEvidence to inspectStill missing
VSDX package intakeSafe local OPC/ZIP readingInitial implementationCore package.ts; package.test.tsBroader producer corpus, independent security review
Format discovery and pagesRelationships, page order, dimensionsInitial implementationCore parser.ts; parser.test.tsMore genuine document fixtures
Background pagesResolve and draw inherited background pagesPartialCore getVisioPageLayers; viewer render-svg.tsVisio reference comparisons; page-scale interactions
Master inheritanceMaster and instance cell/section mergingPartialCore shapes.ts and sheet.tsFormula-driven resizing, full master semantics
Group transformsNested coordinate systems, rotation, flips and group display modesPartialCore geometry.ts; groupDisplayMode; renderer order testsComplex group corpus and reference renders
Basic pathsMove, line, relative quadratic/cubic segmentsPartialCore geometryPaths in geometry.tsComprehensive geometry conformance corpus
Ellipses and arcsNative cached arc and ellipse geometryPartialCore geometry.ts; geometry.test.tsDegenerate cases and reference images
NURBS, splines, polylinesAll Visio Geometry row formsPartial: polylines, cached splines and bounded NURBS approximationCore geometry.ts; literal/spline analytic tests; real upstream NURBS fixturePeriodic/nonclamped forms, expressions, global error bounds and native spline fixtures
Line and fill stylesFull styles, patterns, gradients and opacityPartial: cached caps/dashes, theme linear and saved horizontal gradientsCore style/root and generated horizontal-gradient tests; ten real theme gradients; six real pattern-23 strokes; SVG paint testsNon-horizontal saved gradients, non-solid theme/custom patterns, native comparison, radial/hatch fills and effects
ArrowheadsAll connector end variantsPartial: codes 1-5Viewer arrowheads.ts; SVG markersExact sizing, remaining codes, reference corpus
Connectors and glueConnectivity, routing, dynamic gluePartial readCore page connection model; cached geometryLive routing, glue constraints, editing and reroute
ShapeSheet formulasRecalculation and dependenciesPartial: bounded numeric dependency recalculation for admitted geometry editsCore formula, edit-recalculate and independent review testsScoped package/master/theme graph, dynamic functions and native conformance
TextRuns, margins, orientation, paragraphs and layoutPartial: rich runs, wrapping, spacing, RTL and bulletsCore paragraph model; bounded text/paragraph layout testsExact Visio font metrics, tabs, advanced typography and reference comparisons
Themes and stylesTheme colors, variants and inheritancePartial: selected theme records and explicit root-style cachesCore theme resolver; upstream colors/gradients; hash-pinned root-cache regressionsMissing caches, complete theme variants/fonts/effects and native reference equivalence
Images and foreign dataRaster, vector, OLE and foreign objectsPartial: embedded PNG/JPEG/GIF; isolated bounded EMF primitivesCore raster/admission tests; inert vector boundary; isolated production worker and shared rendering testsMost EMF records, EMF+/WMF, SVG/OLE, effects and native Visio fidelity
LayersVisibility, locks, colors and print settingsPartial: shared display controls and bounded visibility resolverCore visibility tests; shared control/search/selection tests; all-six binding APIsLayer color overrides, editing, native visibility comparison and print policy
Shape data and hyperlinksProperties, data graphics and linksPartial: cached data and guarded hyperlink metadata389 real-corpus data rows; generated URL tests; shared inspector testsInternal-target navigation, external subaddresses, frames, data graphics and editing
Containers and swimlanesContainer relationships and layoutNot implementedCached child shapes may still renderSemantic model, memberships, layout and editing
Document text searchFind and navigate matching diagram textPartial: bounded visible-shape literal search across pagesShared controller/index/UI tests and all-six native binding integrationPer-occurrence highlighting, regex, language collation, shape-data search and native visibility comparison
Page navigationVisio bottom page tabs, Ctrl+Page Up/Down and "Page N of M" statusInitial implementation: shared ooxml-ui tab strip, page rail and status itemViewerController; viewer-chrome.ts; viewer-chrome.test.ts; editor-chrome.spec.tsInsert, rename, reorder and delete pages (needs core page commands); genuine multi-page usability corpus
Zoom and fitVisio status-bar zoom slider, Fit to Window (Ctrl+Shift+W), Page Width, 100%, Ctrl+wheelInitial implementation: shared ooxml-ui zoom slider, View ribbon Zoom group and the floating Pan & Zoom window (page thumbnail, visible-area outline, click or drag to pan, arrow keys, Ctrl+wheel zoom)viewer-element.ts; viewer-commands.ts; viewer-pan-zoom.ts; viewer-chrome.test.ts; viewer-pan-zoom.test.ts; visio-toolbar.spec.ts; task-windows.spec.tsZoom dialog presets, resizing the Pan & Zoom outline to zoom, pinch behavior and large-diagram performance
Ribbon and toolbar commandsMicrosoft Visio window: File backstage, Quick Access Toolbar, Home, Insert, Design, Data, Process, Review, View and Help tabs, Tell me, Shapes window, context menus, page bar and status bar, with native shortcutsPartial. Layout follows a capture of Visio 16: tabs, groups, large and three-row commands, dropdown and split menus, dialog launchers; File backstage; Tell me what you want to do (Alt+Q) over every ribbon command with its location; KeyTips (Alt, then letters) across tabs and both Home and View levels; the Shapes window with the Basic Shapes stencil and a minimised Shapes strip that reopens it; shape and page context menus; page tabs with All pages and Insert Page; Presentation Mode in the status bar. Working: Undo/Redo, Pointer Tool, Rectangle drag tool and Rectangle master, Edit Text, Shape Data, Find, Layer Properties, Ruler, Grid, Task Panes, Pan & Zoom, Zoom presets, Fit to Window, Page Width, Full Screen, File Open, Save and Save As (VSDX copy), Export SVG, Print current page, Close, Info, Account (shared ooxml-ui profile editor, stored on this device) and Visio Options (shared ooxml-ui options dialog; User name and Initials honoured, every other setting disabled with its reason). Every other command, master and page is visible, disabled and names the missing capability. Composed from shared ooxml-ui elements, including the ribbon tab row, File backstage, print preview, Find bar and rulersribbon*.ts, backstage.ts, viewer-backstage.ts, viewer-options.ts, viewer-tell-me.ts, viewer-options.test.ts, shapes-window.ts, viewer-stencil.ts, viewer-context-menu.ts, viewer-commands.ts, viewer-ruler.ts; viewer-chrome.test.ts, viewer-commands.test.ts, shapes-window.test.ts, visio-toolbar.spec.ts. Rectangle create plus delete reopened in Visio 16 over COM with exact PinX/PinY/Width/HeightClipboard, Font, Paragraph, Shape Styles, Arrange, Connector, Text and other drawing tools, other Basic Shapes masters, Change Shape, Insert Page and the Insert, Design, Data, Process and Review commands need new core edit commands. Also missing: New blank drawing, PDF export, Presentation Mode, bundled Help, on-canvas move/resize handles (need core-exposed PinX/LocPin), multi-selection, Guides, Page Breaks and Size & Position panes, stencil files
Shape selectionIdentify shapes by page and shape IDPartial: pointer and keyboard navigationPage-scoped selection, roving focus and lifecycle testsMulti-selection, assistive-technology and real-browser audit
Framework integrationOne renderer across host frameworksSix thin native adapters with lifecycle testsReact/Vue/Angular/Svelte/Solid/vanilla runtime checks; selected SSR/hydration checksStandalone packaging, cross-browser and historical peer-version matrix
Editing and historyMove, resize, style, text, undo/redoExperimental plain text and admitted top-level local 2D create/move/resize/delete, plus bounded primitive master-instance moves with explicit local pins and undo/redoShared geometry controls, atomic API, all-six forwarding and Chrome editing tests; core corpus: 12 admitted master instances across four files, 59 refusals from 71 scannedMaster resize/delete, groups, glue, unsupported package dependencies, style/rich-text edits and native Visio fidelity remain unsupported or unverified
Native save and round-tripSave editable VSDX preserving unknown partsExperimental local VSDX copy export for admitted text/geometry editsCore atomic preservation, dependency and independent safety tests; worker-isolated edits, bounded history and explicit downloaded copies. Signed and macro packages are rejectedGeneral writer, broader geometry and scoped cache recalculation, rich text, native Visio reopen
Export and printSVG, images, PDF and print layoutPartial: SVG export and bounded immutable print artifactsShared export/snapshot APIs, all-six handle tests, four-page real snapshot and raster pixel testsPrint frames/dialogs, saved printer/layer settings, PNG/PDF output, embedded fonts and native comparison
Legacy and other Visio formatsVSD, VDX, stencils, templates, macrosBounded binary VSD v11 preview through ole2Byte-signature dispatch; explicit page/shape transforms, move/line geometry and plain text with diagnosed fallback styles. Legacy source is retained, with VSDX editing/export disabled.Older binary versions, groups/masters, rich formatting, complex geometry, native Visio fidelity, VDX, stencils, templates and macros
Collaboration and commentsShared editing with durable statePartial: File > Share starts a live session (ooxml-core/collab, Yjs) between windows of this browser over BroadcastChannel. The whole VSDX package is shared; remote changes arrive as one undoable history step; collaborators show with the shared ooxml-ui presence elementviewer-share.ts; viewer-share.test.ts (two controllers sync a load, an edit and an undo); core package-sync.test.tsSharing across devices (needs a host-provided server transport), field-level merging (concurrent changes: the last package wins), comments, authentication and roles
Visio visual parityMeasured equivalence on real documentsNot established; real corpus under comparison19 upstream drawings import; secondary embedded-thumbnail comparisons reveal gapsFull reference renders, fonts/settings, measured fidelity and manual review
Corner roundingRounded contiguous geometryPartial: closed axis-aligned rectangles and nonclamped open orthogonal pathsAnalytic regressions; five 60973 rectangles and five connectors (14 corners)Short-segment connector clamping, general polygon and mixed/curved path rounding

Evidence required ​

  1. Genuine Visio-authored documents and a representative compatibility corpus.
  2. Versioned Visio reference renders with fonts/page settings.
  3. Measured geometry, text, connector and style comparisons.
  4. End-to-end edit, save and reopen tests in Microsoft Visio.
  5. Unknown XML part and relationship preservation.
  6. Cross-framework/browser interaction and accessibility tests.

Warnings are useful but not comprehensive. Absence of diagnostics is not a fidelity guarantee.

References ​

Released under the Apache-2.0 License.