Visio defaults to tabbing from shape to shape in the order that the shapes are added to the page. However, this can end up with an illogical order if you are trying to navigate a diagram with the keyboard, which is often an accessibility requirement. Fortunately, Visio provides a Diagram Navigation pane so that the tab order can be changed, but how does it do it? The following short video shows how the navigation order, displayed as numbers in each shape, is assigned a value as soon as the order is edited.
I managed this by adding a User.visNavOrder to the master shape of all the significant masters, and a hidden Shape Data row, labelled “Navigation Order“. This has the following formula for its value:
In the above video clip, the Navigation Order Shape Data row is displayed as text on each shape so that it is clear how Visio is automatically assigning values to User.visNavOrder when the Diagram Navigation panel is used.
In addition to each shape getting the User.visNavOrder cell, the page itself gets a User.visNavType cell with a value of 1. Setting this value to 0 will suspend the update of the User.visNavOrder cells in the shapes until the Diagram Navigation panel is used to manipulate the order again, which will set the value back to 1 again.