DITA
  • Specifications
  • OASIS TC
  • Cover page information
  • Notices
  • Introduction
    • Terminology
    • References
      • Normative references
      • Informative references
    • Normative versions of DITA grammar files
    • About the specification source
  • DITA terminology, notation, and conventions
    • Normative and non-normative information
    • Notation
    • Basic DITA terminology
    • Specialization terminology
    • DITA module terminology
    • Linking and addressing terminology
    • Key terminology
    • Map terminology
    • Other terminology
    • File extensions
  • Overview of DITA
    • Basic concepts
    • Producing different deliverables from a single source
    • DITA topics
      • DITA topics
        • The topic as the basic unit of information
        • The benefits of a topic-based architecture
        • Disciplined, topic-oriented writing
        • Information typing
        • Topic structure
        • Topic content
    • DITA maps
      • DITA maps
        • Definition of DITA maps
        • Purpose of DITA maps
        • DITA map attributes
    • DITA metadata
      • DITA metadata
        • Metadata elements
        • Metadata attributes
        • Metadata in maps and topics
        • Window metadata for user assistance
  • Accessibility and translation
    • Accessibility
      • Accessibility
        • Handling accessibility in content and in processors
        • Accessible content
        • Accessible tables
        • Examples of DITA markup for accessibility
          • Example: Alternate text for an image
          • Example: Alternate text for an image map
          • Example: Fallback information for multimedia content
          • Example: Simple table with accessibility markup
          • Example: Complex table with accessibility markup
          • Example: Complex table with some manually-specified accessibility markup
          • Example: Complex table with manual accessibility markup
    • Translation and localization
      • Translation and localization
        • The xml:lang attribute
          • Recommendations for the xml:lang attribute
          • Processing expectations regarding the xml:lang attribute
          • Example: content reference and the xml:lang attribute
        • The dir attribute
          • The Unicode Bidirectional Algorithm
          • Recommended usage of the dir attribute
          • Processing expectations regarding the Unicode Bidirectional Algorithm
        • The translate attribute
  • DITA map processing
    • DITA maps and their usage
      • Imposing roles when referencing a map
        • Example: How topicref roles are imposed on referenced maps
      • Examples of DITA maps
        • Example: DITA map that references a subordinate map
        • Example: DITA map with a simple relationship table
        • Example: How the collection-type and linking attributes determine links
    • Subject scheme maps
      • Subject scheme maps and their usage
        • Subject scheme maps
        • Defining controlled values for attributes
        • Binding controlled values to an attribute
        • Processing controlled attribute values
        • The subjectrefs attribute
        • Examples of subject scheme maps
          • Example: a subject scheme map used to define taxonomic subjects
          • Example: How hierarchies defined in a subject scheme map affect filtering
          • Example: Defining values for deliveryTarget
    • Cascading metadata
      • Metadata cascading
        • Cascading of metadata attributes in a DITA map
          • Processing cascading attributes in a map
          • Merging of cascading attributes
        • Reconciling topic and map metadata elements
        • Map-to-map cascading behaviors
          • Cascading of attributes from map to map
          • Cascading of metadata elements from map to map
        • Examples of metadata cascading
          • Example: How map-level metadata elements cascade to the referenced topics
          • Example: How metadata elements cascade from one map to another
          • Example: How attributes cascade from one map to another
          • Example: How the cascade attribute affects attribute cascading
    • Chunking
      • Chunking
        • About the chunk attribute
        • Processing chunk="combine"
        • Processing chunk="split"
        • Using the chunk attribute for other purposes
        • Examples of the chunk attribute
          • Example: Using chunk to combine all documents into one
          • Example: Using chunk to render a single document from one or more branches
          • Example: Using chunk to combine groups of topics
          • Example: How chunk="combine" effects the map hierarchy
          • Example: Using chunk to split documents
          • Example: How chunk="split" affects the map hierarchy
          • Example: When chunk is ignored
          • Example: Using chunk="combine" when the root map specifies chunk="split"
          • Example: Managing links when chunking
  • DITA addressing
    • id attribute
    • DITA linking
      • The format attribute
      • The href attribute
      • The scope attribute
      • The type attribute
    • URI-based (direct) addressing
    • Key-based addressing
      • Indirect key-based addressing
        • Core concepts for working with keys
        • Setting key names with the keys attribute
        • The keyref attribute
        • Using keys for addressing
        • Key scopes
        • The keyscope attribute
        • Addressing keys across scopes
        • Cross-deliverable addressing and linking
        • Processing key references
        • Processing key references for navigation links and images
        • Processing key references on topicref elements
        • Processing key references to generate text or link text
        • Examples of keys
          • Examples: Key definition
          • Examples: Key definitions for variable text
          • Example: Duplicate key definitions within a single map
          • Example: Duplicate key definitions across multiple maps
          • Example: Key definition with key reference
          • Example: Link redirection
          • Example: Link modification or removal
          • Example: Links from term or keyword elements
          • Example: conref redirection
          • Example: Keys and collaboration
        • Examples of scoped keys
          • Example: Scoped key definitions for variable text
          • Example: References to scoped keys
          • Example: Key definitions in nested key scopes
          • Example: Key scopes and omnibus publications
          • Example: How key scopes affect key precedence
          • Example: How key scopes with the same name interact
          • Example: subjectrefs attribute with key scopes
    • Context hooks for user assistance
  • DITA processing
    • Navigation
      • Table of contents
      • Alternative titles
    • Indexes
      • Indexes
        • Index overview
        • Index elements
        • Location of indexterm elements
        • Index locators
        • Index redirection
        • Index ranges
        • Index sorting
        • Examples of indexing
          • Example: Index range defined in a single topic
          • Example: Index range defined in a topic prolog
          • Example: Index range defined in a map
    • Content reference (conref)
      • Content reference (conref)
        • Content referencing overview
        • Direct URI-based content reuse
        • Indirect key-based content reuse
        • Reusing a range of elements
        • Pushing reusable content to a new location
        • Processing conrefs
        • Processing attributes when resolving conrefs
          • Using the -dita-use-conref-target value
        • Processing xrefs and conrefs within a conref
        • Examples of content referencing
          • Example: Simple conref usage
          • Example: Simple conkeyref usage
          • Example: Reusing a sequence of list items
          • Example: Reusing a sequence of elements of different types
          • Example: Reusing a range with conkeyref
          • Example: Using conaction to replace content
          • Example: Using conaction to push content before another element
          • Example: Using conaction to push content after another element
          • Example: Resolving conrefs to elements that contain cross references
          • Example: Resolving conrefs to elements that contain cross references, with key scopes
          • Example: Using the -dita-use-conref-target value
    • Conditional processing
      • Conditional processing
        • About conditional processing
        • Expectations for conditional processing
        • About the DITAVAL document
        • Conditional processing attribute values
        • Conditional processing attribute values with groups
        • Conditional processing and subject schemes
        • Filtering based on metadata attributes
        • Flagging based on metadata attributes
        • Examples of conditional processing
          • Example: Setting conditional processing values
          • Example: Simple DITAVAL document
          • Example: Changing the default behavior to "exclude"
          • Example: Flagging with outputclass
          • Example: Filtering based on groups
          • Example: Filtering and flagging topic content
          • Example: Simple DITAVAL document
          • Example: DITAVAL with conditions for groups
    • Branch filtering
      • Branch filtering
        • Overview of branch filtering
        • How filtering rules interact
        • Branch filtering: Single referenced DITAVAL document for a branch
        • Branch filtering: Multiple referenced DITAVAL documents for a branch
        • Branch filtering: Impact on resource and key names
          • Using metadata elements in the DITAVAL reference domain
          • Renaming based on multiple ditavalref elements
          • Handling resource name conflicts caused by branch filtering
        • Branch filtering: Implications of processing order
        • Examples of branch filtering
          • Example: Single ditavalref on a branch
          • Example: Multiple ditavalref elements on a branch
          • Example: Single ditavalref as a child of map
          • Example: Single ditavalref in a reference to a map
          • Example: Multiple ditavalref elements as children of map in a root map
          • Example: Multiple ditavalref elements in a reference to a map
          • Example: ditavalref within a branch that already uses ditavalref
          • Example: ditavalref error conditions
    • Sorting
    • Determining effective attribute values
  • Configuration and specialization
    • Overview of DITA extension facilities
    • Configuration
      • Document-type configuration
        • Overview of document-type shells
        • Rules for document-type shells
        • Equivalence of document-type shells
        • Conformance of document-type shells
    • Specialization
      • Specialization
        • Overview of specialization
        • Modularization
        • Vocabulary modules
        • Specialization rules for element types
        • Specialization rules for attributes
        • The class attribute rules and syntax
        • The specializations attribute rules and syntax
        • Specializing to include non-DITA content
        • Sharing elements across specializations
    • Generalization
      • Generalization
        • Overview of generalization
        • Element generalization
        • Processor expectations when generalizing elements
        • Attribute generalization
        • Generalization with cross-specialization dependencies
    • Constraints
      • Constraints
        • Overview of constraints
        • Constraint rules
        • Constraints, processing, and interoperability
    • Expansion modules
      • Expansion modules
        • Overview of expansion modules
        • Expansion module rules
  • Element reference
    • DITA elements, A to Z
    • DITA attributes, A to Z
    • Base elements
      • Topic elements
        • Basic topic elements
          • abstract
          • body
          • bodydiv
          • dita
          • prolog
          • related-links
          • shortdesc
          • title
          • titlealt
          • topic
        • Body elements
          • alt
          • cite
          • dd
          • ddhd
          • desc
          • div
          • dl
          • dlentry
          • dlhead
          • draft-comment
          • dt
          • dthd
          • example
          • fallback
          • fig
          • figgroup
          • fn
          • image
          • include
          • keyword
          • li
          • lines
          • longdescref
          • lq
          • note
          • object
          • ol
          • p
          • param
          • ph
          • pre
          • q
          • section
          • sl
          • sli
          • term
          • text
          • tm
          • ul
          • xref
        • Multimedia elements
          • audio
          • media-source
          • media-track
          • video
          • video-poster
        • Indexing elements
          • index-see
          • index-see-also
          • indexterm
        • Related links elements
          • link
          • linkinfo
          • linklist
          • linkpool
          • linktext
        • Table elements
          • colspec
          • entry
          • row
          • simpletable
          • stentry
          • sthead
          • strow
          • table
          • tbody
          • tgroup
          • thead
      • Map elements
        • Basic map elements
          • keytext
          • map
          • navref
          • relcell
          • relcolspec
          • relheader
          • relrow
          • reltable
          • topicref
          • topicmeta
          • ux-window
        • Subject scheme elements
          • attributedef
          • defaultSubject
          • elementdef
          • enumerationdef
          • schemeref
          • subjectdef
          • subjectHead
          • subjectHeadMeta
          • subjectScheme
      • Metadata elements
        • Descriptive metadata
          • audience
          • author
          • category
          • keywords
          • othermeta
          • prodinfo
          • publisher
          • prodname
          • prognum
        • Lifecycle management metadata
          • copyrholder
          • copyright
          • copyryear
          • created
          • critdates
          • metadata
          • permissions
          • resourceid
          • revised
          • source
        • Product information metadata
          • brand
          • component
          • featnum
          • platform
          • series
          • vrmlist
          • vrm
      • Specialization elements
        • data
        • foreign
        • no-topic-nesting
      • Domain elements
        • Alternative-titles domain elements
          • linktitle
          • navtitle
          • searchtitle
          • subtitle
          • titlehint
        • DITAVAL-reference domain element
          • ditavalref
          • ditavalmeta
          • dvrResourcePrefix
          • dvrResourceSuffix
          • dvrKeyscopePrefix
          • dvrKeyscopeSuffix
        • Emphasis domain elements
          • em
          • strong
        • Hazard-statement domain elements
          • consequence
          • hazardstatement
          • hazardsymbol
          • howtoavoid
          • messagepanel
          • typeofhazard
        • Highlighting domain elements
          • b
          • i
          • line-through
          • overline
          • sub
          • sup
          • tt
          • u
        • Mapgroup domain elements
          • keydef
          • mapref
          • mapresources
          • topicgroup
          • topichead
        • Utilities domain elements
          • area
          • coords
          • imagemap
          • shape
          • sort-as
      • Other elements
        • Legacy conversion elements
          • required-cleanup
        • DITAVAL elements
          • alt-text
          • endflag
          • prop
          • revprop
          • startflag
          • style-conflict
          • val
    • Attributes
      • Attributes
        • Attribute groups
        • Universal attribute group
        • Common attributes
  • Conformance
  • Acknowledgments
  • Aggregated RFC-2119 statements
  • Coding practices for DITA grammar files
    • File naming conventions
    • DTD coding requirements
      • DTD: Use of entities
      • DTD: Coding requirements for document-type shells
      • DTD: Coding requirements for structural and element-domain modules
      • DTD: Coding requirements for structural modules
      • DTD: Coding requirements for element-domain modules
      • DTD: Coding requirements for attribute-domain modules
      • DTD: Coding requirements for element-configuration modules
    • RELAX NG coding requirements
      • RELAX NG: Overview of coding requirements
      • RELAX NG: Coding requirements for document-type shells
      • RELAX NG: Coding requirements for structural and element-domain modules
      • RELAX NG: Coding requirements for structural modules
      • RELAX NG: Coding requirements for element-domain modules
      • RELAX NG: Coding requirements for attribute-domain modules
      • RELAX NG: Coding requirements for element-configuration modules
  • Constraint modules
    • Examples: Constraints implemented using DTDs
      • Example: Restrict the content model for the topic element using DTD
      • Example: Constrain attributes for the section element using DTD
      • Example: Constrain a domain module using DTD
      • Example: Replace a base element with the domain extensions using DTD
      • Example: Apply multiple constraints to a single document-type shell using DTD
    • Examples: Constraints implemented using RNG
      • Example: Restrict the content model for the topic element using RNG
      • Example: Constrain attributes for the section element using RNG
      • Example: Constrain a domain module using RNG
      • Example: Replace a base element with the domain extensions using RNG
      • Example: Apply multiple constraints to a single document-type shell using RNG
  • Expansion modules
    • Examples: Expansion implemented using DTDs
      • Example: Adding an element to the section element using DTDs
      • Example: Adding an attribute to certain table elements using DTDs
      • Example: Adding an existing domain attribute to certain elements using DTDs
      • Example: Aggregating constraint and expansion modules using DTDs
    • Examples: Expansion implemented using RNG
      • Example: Adding an element to the section element using RNG
      • Example: Adding an attribute to certain table elements using RNG
      • Example: Adding an existing domain attribute to certain elements using RNG
      • Example: Aggregating constraint and expansion modules using RNG
  • Element-by-element recommendations for translators
  • Formatting expectations
  • Migrating to DITA 2.0
    • Changes from DITA 1.3 to DITA 2.0
    • Information about migrating to DITA 2.0
  • OASIS grammar files
    • File names in the base DITA edition
    • Globally-unique identifiers in the base DITA edition
    • Domains provided in the base DITA edition
    • Document-type shells provided in the base DITA edition
  • Processing interoperability considerations
  • Revision history

Navigation

DITA includes markup that processors can use to generate reader navigation to or across DITA topics. Such navigation behaviors include table of contents (TOCs) and indexes.

Parent topic: DITA processing

Table of contents

Processors can generate a table of contents (TOC) based on the hierarchy of the elements in a DITA map. By default, each <topicref> element in a map represents a node in the TOC. These topic references define a navigation tree.

When a map contains a topic reference to a map (often called a map reference), processors integrate the navigation tree of the referenced map with the navigation tree of the referencing map at the point of reference. In this way, a deliverable can be compiled from multiple DITA maps.

Note (non-normative):
If a <topicref> element that references a map contains child <topicref> elements, the processing behavior regarding the child <topicref> elements is undefined.

The effective navigation title is used for the value of the TOC node. A TOC node is generated for every <topicref> element that references a topic or specifies a navigation title, except in the following cases:

  • The @processing-role attribute that is specified on the <topicref> element or an ancestor element is set to "resource-only".
  • Conditional processing is used to filter out the node or an ancestor node.
  • There is no information from which a TOC entry can be constructed; there is no referenced resource or navigation title.
  • The node is a <topicgroup> element, even if it specifies a navigation title.

To suppress a <topicref> element from appearing in the TOC, set the @toc attribute to "no". The value of the @toc attribute cascades to child <topicref> elements, so if @toc is set to "no" on a particular <topicref>, all children of the <topicref> element are also excluded from the TOC. If a child <topicref> overrides the cascading operation by specifying toc="yes", then the node that specifies toc="yes" appears in the TOC (minus the intermediate nodes that set @toc to "no").

Alternative titles

This topic contains examples of alternative titles moved from the <titlealt> topic. It needs editing and to be restructured.

Custom title roles

A content architect could create a Topic specialization with custom <titlealt> specializations called <windowtitle> and <breadcrumbtitle>. These specializations specify default @title-role values of window and breadcrumb, respectively, so that authors do not have to specify those roles explicitly. Content containing these specializations could look like the following.

<helpTopic id="topic167">
  <title>Doing the Thing in the Place where the Stuff Is</title>
  <prolog>
    <windowtitle>Doing Things</windowtitle>
    <breadcrumbtitle>Things</breadcrumbtitle>
  </prolog>

They could also incorporate these elements into their map document type shell, enabling map authors to override the values in topics.

<topicref href="topic167.dita">
  <topicmeta>
    <breadcrumbtitle>Thing Doing</breadcrumbtitle>
  </topicmeta>
</topicref>

Navigation titles and precedence

Move to archSpec

Consider the following series of topic references:

<topicref href="topics.dita#one"/>
<topicref href="topics.dita#two">
  <topicmeta>
    <titlealt title-role="navigation">Topic Two (Map navigation title)</titlealt>
  </topicmeta>
</topicref>
<topicref href="topics.dita#three">
  <topicmeta>
    <titlealt title-role="linking">Topic Three (Map linking title)</titlealt>
  </topicmeta>
</topicref>
<topicref href="topics.dita#four">
  <topicmeta>
    <titlealt title-role="linking">Topic Four (Map linking title)</titlealt>
  </topicmeta>
</topicref>

Here is the ditabase document containing those topics:

<dita>
  <topic id="one">
    <title>Topic One</title>
  </topic>
  <topic id="two">
    <title>Topic Two</title>
    <prolog>
      <titlealt title-role="navigation">Topic Two (Topic navigation title)</titlealt>
    </prolog>
  </topic>
  <topic id="three">
    <title>Topic Three</title>
  </topic>
  <topic id="four">
    <title>Topic Four</title>
    <prolog>
      <titlealt title-role="navigation">Topic Four (Topic navigation title)</titlealt>
    </prolog>
  </topic>
</dita>

The resulting navigation structure would be as follows:

  1. Topic One - The navigation title is pulled from the title of the topic, since neither the map nor the topic specify a navigation title.
  2. Topic Two (Map navigation title) - The navigation title comes from the map, as its navigation title takes precedence over that in the topic.
  3. Topic Three (Map linking title) - The navigation title comes from the map, which serves as the fallback for navigation titles when no navigation alternative title is provided.
  4. Topic Four (Topic navigation title) - The navigation title comes from the topic. Even though the map specifies a <titlealt> with a role of linking, and normally maps take precedence, a linking alternative title is only used for navigation when there is no navigation alternative title available. In this case, the one from the topic is present, and is therefore used. To override the topic's navigation title in this case, the topic reference would have to explicitly provide a navigation alternative title. The linking title in the map still applies as the resource's linking title, just not its navigation title.

Example: Reconciling Map and Topic Alternative Titles

A <topicref> contains the following titles:

<topicref href="topic.dita">
  <topicmeta>
    <titlealt title-role="breadcrumbTitle">Doin' Stuff</titlealt>
    <titlealt title-role="longTitle">That thing you do when there's stuff that needs doing.</titlealt>
  </topicmeta.
</topicref>

The referenced topic has the following prolog:

<prolog>
  <titlealt title-role="subtitle">Doing Stuff</titlealt>
  <titlealt title-role="breadcrumbTitle flipbookTitle">Stuff</titlealt>
</prolog>

During processing, the two sets of elements will be concatenated together (logically, if not physically), with the map's elements coming first:

<titlealt title-role="breadcrumbTitle">Doin' Stuff</titlealt>
<titlealt title-role="longTitle">That thing you do when there's stuff that needs doing.</titlealt>
<titlealt title-role="subtitle">Doing Stuff</titlealt>
<titlealt title-role="breadcrumbTitle flipbookTitle">Stuff</titlealt>

Note that breadcrumbTitle is specified in both the map and the topic, and the map's value takes precedence. However, that same alternative title in the topic specifies an additional role of flipbookTitle, which is not overridden by the map, and so should be preserved.

The equivalent merged alternative titles, with duplicates removed, would look as follows.

<titlealt title-role="breadcrumbTitle">Doin' Stuff</titlealt>
<titlealt title-role="longTitle">That thing you do when there's stuff that needs doing.</titlealt>
<titlealt title-role="subtitle">Doing Stuff</titlealt>
<titlealt title-role="flipbookTitle">Stuff</titlealt>

Keyrefs and alternative titles

Move to archSpec. Content of <titlealt> needs to change; it's backwards.

Consider the following two topic references:

<topicref keys="a">
  <topicmeta>
    <titlealt title-role="linking">Linking Title from Keyref</titlealt>
    <titlealt title-role="navigation">Navigation Title from Keyref</titlealt>
  </topicmeta>
</topicref>
<topicref keyref="a">
  <topicmeta>
    <titlealt title-role="navigation">Navigation Title</titlealt>
  </topicmeta>
</topicref>

The resolved titles would look something like this:

<titlealt title-role="navigation">Navigation Title</titlealt>
<titlealt title-role="linking">Linking Title from Keyref</titlealt>
<titlealt title-role="navigation">Navigation Title from Keyref</titlealt>

That is, the "local" alternative titles come before those pulled from the key reference. In cases where only a single alternative title of a given role can be used, the first takes precedence, so the navigation title from the key reference has no effect.

Report an Issue ยท Colophon