1EdTech APIP to QTI 3 Migration
Spec Version 3.0
Document Version: | 1.0 |
Date Issued: | 1 May 2022 |
Status: | This document is made available for adoption by the public community at large. |
This version: | https://www.imsglobal.org/spec/qti/v3p0/migr/ |
IPR and Distribution Notice
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech's procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights webpage: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf .
The following participating organizations have made explicit license commitments to this specification:
Org name | Date election made | Necessary claims | Type |
---|---|---|---|
CITO | March 11, 2022 | No | RF RAND (Required & Optional Elements) |
HMH | March 11, 2022 | No | RF RAND (Required & Optional Elements) |
Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.imsglobal.org/speclicense.html.
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
Public contributions, comments and questions can be posted here: http://www.imsglobal.org/forums/ims-glc-public-forums-and-resources .
© 2022 1EdTech Consortium, Inc. All Rights Reserved.
Trademark information: http://www.imsglobal.org/copyright.html
Abstract
The 1EdTech Question and Test Interoperability® (QTI®) specification is a technical standard for digital interchange of assessment content (items and tests), assessment usage data and results reporting. Use of QTI 3.0 enables assessment materials to be exchanged digitally among a wide variety of products, such as item/test authoring products, item banks, and test delivery systems [QTI-OVIEW-30].
QTI 3.0 is based on the well established QTI standard that has been used internationally for two decades and 1EdTech Accessible Portable Item Protocol® (APIP®). QTI 3.0 adds support of digital delivery options for a range of common accessibility needs and enables transform-free authoring to delivery workflow. Implementations of QTI 3.0 may require use of related standards, including the 1EdTech Content Packaging 1.0 specification, and the AccessForAll® (AfA) 3.0 specification.
One of the principal ways that 1EdTech promotes conformance to the QTI 3.0 standard is by creating a certification process, which is detailed in this documentation. Additionally, and as a part of the certification process, 1EdTech employs online validators for use by member organizations to ensure conformance to the QTI 3.0 specification.
This document is a brief guide to migrating APIP information into QTI 3.0 information for both AccessForAll Personal Needs and Preferences (PNP) instances and QTI Items.
1. Introduction
This guide assumes familiarity with APIP concepts. These concepts are explained in detail in the APIP Best Practice and Implementation Guide [APIP-IMPL-10].
The first part of this document focuses on the differences between Access for All (AfA) 2.0 PNP used with APIP and the AfA 3.0 PNP used with QTI 3.0. Throughout this document, we refer to these as the APIP PNP and QTI 3.0 PNP.
The rest of the document focuses on the changes when moving an item from using APIP to QTI 3.0. Additionally, it provides several specific examples on how to transform the APIP audience-specific content of an assessment item into the support-specific content of QTI 3.0. This guide does not have information around changes outside the itemBody or apipAccessibility nodes.
1.1 Key Changes
There are a number of changes between APIP and QTI 3.0. Some of the key changes include new namespace and schema location, shifting to lower-case naming conventions, the use of web-friendly names for elements, catalogs rather than access elements, and the removal of inclusion orders.
1.1.1 Namespace and Schema Location
When migrating content from APIP to QTI 3.0, you will need to use the new QTI 3.0 namespace, as shown below.
xmlns="http://www.imsglobal.org/xsd/qti/qtiv3p0/imsafa3p0pnp_v1p0"
For schema location, use:
xsi:schemaLocation="http://www.imsglobal.org/xsd/qti/qtiv3p0/imsafa3p0pnp_v1p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqtiv3p0_afa3p0pnp_v1p0.xsd"
1.1.2 Lower-case Naming Conventions
Both QTI 3.0 PNP and QTI 3.0 use more "web-components friendly" lower-case, dash-separated naming conventions, rather than the camelCase conventions of QTI 2.1 and APIP.
As an example, instead of naming a support keyWordEmphasis
(from APIP PNP), QTI 3.0 uses the name keyword-emphasis
.
Section § 2.1 Style Differences in APIP PNP (AfA v2.0) to QTI 3.0 PNP (AfA v3.0) provides more details about these style changes.
1.1.3 Web-components Friendly Element Names
The QTI 3.0 examples in this document include content within the qti-item-body. All QTI-specific element names use the newer QTI 3.0 element prefixes, "qti-",
for any non-HTML elements. An example would be using <qti-prompt>
instead of <prompt>
.
For attributes that used camelCase conventions in APIP (QTI 2.1 and 2.2), the names have been changed to the lower-case-dash-separated convention (kebab case),
but they do not have a qti-
prefix. The attribute timeDependent
in APIP is now time-dependent
in QTI 3.0. The vocabularies
used within the attributes retain their camelCase spelling.
The Packaging manifest still uses the camelCase naming, as it is based on the Content Packaging standard, not the QTI 3.0 standard.
1.1.4 Sequence of Elements in an AssessmentItem
A slight adjustment has been made to the sequence of elements in the qti-assessment-item structure to adjust for the merger of the QTI and APIP information models, and for the QTI 3 additions. The QTI 3 sequence is as follows:
qti-context-declaration
(new to QTI 3)qti-response-declaration
qti-outcome-declaration
qti-template-declaration
qti-template-processing
qti-assessment-stimulus-ref
qti-companion-materials-info
qti-stylesheet
qti-item-body
qti-catalog-info
(new to QTI 3)qti-response-processing
qti-modal-feedback
.
1.1.5 Catalogs Rather Than Access Elements
In QTI 3.0, support-specific content is stored in "cards" within "catalogs". Catalogs are referenced by id from the qti-item-body
content.
You point from the qti-item-body
tothe qti-catalog, which is the reverse direction of APIP. The cards contain
the content (or point to a file or resource), and each card uses a support attribute to identify which support it contains. A catalog can contain any number of
supports, but only one card for each support is allowed in any single catalog.
The access element has been replaced with the qti-catalog
element. The individual audience-specific nodes within the relatedElementInfo
node have been replaced by the cards in the catalog.
Section § 3. Support-Specific Content explores catalogs in more detail.
Catalogs can also be referenced from within the qti-content-body
of a qti-rubric-block
, which can be placed in Tests, Sections, and within an assessment item's qti-item-body
.
1.1.6 Removal of Inclusion Orders
Inclusion orders are not used in QTI 3.0. Instead, the order of presentation is the document order (DOM). Additional or replacement content for specific
supports is added by making a reference to that content in the qti-item-body
. This is explored in more detail in Sections § 4. APIP Features Used in Content without Inclusion Orders and § 5. APIP Features with Inclusion Orders.
A Note About Examples
To keep this guide as brief as possible, only code snippets are used in the examples.In some cases, the example code includes points of ellipsis (...) to
indicate there is more code required for a valid instance of an assessment item. We also represent the <assessmentItem>
(or <qti-assessment-item>
in QTI 3.0) element as a simple element, without including the required attributes. An actual QTI 3.0 item will have the qti-assessment-item node
with the opening element looking more like:
<qti-assessment-item xmlns="http://www.imsglobal.org/xsd/imsqtiasi_v3p0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqtiasi_v3p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_asiv3p0_v1p0.xsd"
identifier="QTI3_example"
title="assesst menItem Example"
time-dependent="false"
xml:lang="en-US">
1.1.7 Conformance Statements
This document is an informative resource in the Document Set of the 1EdTech Question & Test Interoperability (QTI) v3.0 specification [QTI-OVIEW-30]. As such, it does not include any normative requirements. Occurrences in this document of terms such as MAY, MUST, MUST NOT, SHOULD or RECOMMENDED have no impact on the conformance criteria for implementors of this specification.2. PNP Mapping
2.1 Style Differences in APIP PNP (AfA v2.0) to QTI 3.0 PNP (AfA v3.0)
While both APIP PNP and QTI 3.0 PNP use XML for the candidate preferences, QTI 3 PNP uses a "flatter" style that more directly states specific supports, rather than as a subset of a larger, more abstract classification.
In addition, QTI 3.0 PNP, as well as QTI 3.0 more generally has moved to the more "web-friendly" lower-case, dash separated naming conventions, rather than the camelCase conventions of QTI 2.1 and APIP.
For example, to assign a candidate to the language guidance feature in an QTI 3.0 PNP, you simply state:
<linguistic-guidance/>
Below is an example of a complete QTI 3.0 PNP instance. The remainder of the examples assume the statements are made within a valid PNP.
|
2.2 The APIP 'assignedSupport' Parameter
The assignedSupport
parameter of APIP PNP has been removed in QTI 3.0. In an QTI 3.0 PNP, stating a support assigns the support for the candidate.
In QTI 3.0, if you wish to explicitly prohibit a candidate from receiving a particular support, the support should be listed in the prohibit-set
within the PNP.
An example QTI 3.0 PNP statement prohibiting a support:
<prohibit-set>
<linguistic-guidance/>
</prohibit-set>
2.3 The APIP 'activateByDefault' Parameter
Many APIP PNP features also included a parameter called activateByDefault
with a vocabulary of true or false. In QTI 3.0 PNP, to make a specific instruction
for the computer delivery system to activate or not activate a particular support when a testing session initializes, the feature should ALSO be listed in the
activate-at-initialization-set
(equivalent to activateByDefault = true
) or the activate-as-option-set
(equivalent to
activateByDefault = false
). You are not required to put any support in either of these sets, but you may optionally add a support to these sets to add clarity of
intent. It is intended to be used as explicit instructions, usually where the default behavior is not favorable to the candidate.
For example, if a spoken support is normally active when a candidate starts their test and a particular candidate is overwhelmed by the feature if provided that support when
their test starts, you can assign them to the activate-as-option-set
. This will allow the candidate to activate the spoken support when they want it.
To do this, you must assign them the support and add them to the activate-as-option-set
.
Example APIP PNP assignment and activation preferences:
<content>
<apip:apipContent>
<apip:spoken>
<apip:assignedSupport>true</apip:assignedSupport>
<apip:activateByDefault>true</apip:activateByDefault>
<apip:userSpokenPreference>TextOnly</apip:userSpokenPreference>
</apip:spoken>
</apip:apipContent>
</content>
Example QTI 3 PNP assignment and activation preferences:
<spoken>
<reading-type>computer-read-aloud</reading-type>
</spoken>
<activate-as-option-set>
<spoken/>
</activate-as-option-set>
If you had wanted to ensure the candidate had the support when the test starts, use the activate-at-initialization-set
:
<spoken>
<reading-type>computer-read-aloud</reading-type>
</spoken>
<activate-at-initialization-set>
<spoken/>
</activate-at-initialization-set>
You don't have to assign a support to any of the sets if the support is expected to be provided using the default behavior. In that case, the QTI 3 PNP includes:
<spoken>
<reading-type>computer-read-aloud</reading-type>
</spoken>
2.4 Feature Mapping
The table below maps the APIP PNP Vocabulary to the QTI 3 PNP Vocabulary.
The QTI 3.0 PNP is a profile of the fuller set of features available in the AfA 3.0 standard. Some features are not available in QTI 3.0, for a variety of reasons. As an example, there are some features not within the QTI PNP that may be of interest to some implementers, including alternate representations, where a user's requirements are matched with available resources.
When the table mentions that the feature is not available in AfA 3.0, it means the feature is not a part of the QTI 3.0 PNP, or the larger set of AfA 3.0 features. There is an extension mechanism for QTI 3 PNP, so while there may not be a specific pre-defined feature, you can use the extension mechanism to continue including the APIP feature in a candidate's QTI 3.0 PNP.
Table 1: APIP to QTI 3.0 PNP Feature Mapping
Feature Name | APIP PNP Vocabulary | QTI 3.0 PNP Vocabulary |
---|---|---|
Additional Testing Time | control → apipControl additionalTestingTime timeMultiplier (time/unlimited, opt) |
<additional-testing-time> To specify an amount of time, use the optional parameter: <time-multiplier> To specify an unlimited amount of extra time, use the parameter: <unlimited> Note: there is an additional parameter <fixed-minutes> in QTI 3.0. |
Alternate Representation | content → apipContent alternativeRepresentations |
None, use AfA methods outside the QTI 3.0 Profile. Many of the QTI 3.0 profile features are alternative representation supports themselves. |
Alternate Text and Background Colors | display → apipDisplay apipScreenEnhancement foregroundColour colour (hexadecimal, opt) display → apipDisplay apipScreenEnhancement backgroundColour colour (hexadecimal, opt) |
Use <text-appearance> for the concept of changing the presentation colors. Optional:Use the <font-color> parameter to specify a color for the text using hex notation. Optional:Use the <background-color> parameter to specify a color for the background using hex notation. |
Auditory Calming | display → apipDisplay auditoryBackground |
Removed from AfA. Use the extension mechanism of AfA 3.0 to enable this feature. |
Braille | display braille brailleGrade (opt) numberOfBrailleDots (opt) numberOfBrailleCells (opt) brailleDotPressure (opt) brailleStatusCell (opt) |
Use <braille> to assign user to this feature. The default <delivery-mode> is "refreshable" which maps directly to the APIP expectation of computer delivery. Use <grade> for brailleGrade. Use the extension <ext:> to add refreshable braille preferences like numberOfBrailleDots. |
Chunking | Experimental Feature content → apipContent chunking |
Not available in AfA 3.0 |
Cognitive Guidance | content → apipContent cognitiveGuidance |
Not available in AfA 3.0. QTI 3.0 assumes there are a number of supports that could aid the various cognitive issues for candidates, and those supports should be assigned according to the needs of the candidate. |
Color Overlay | display → apipDisplay apipScreenEnhancement colourOverlay colour (hexadecimal, opt) |
Use <text-appearance> for the concept of changing the presentation colors. Optional:Use the <font-color> parameter to specify a color for the text using hex notation. Optional:Use the <background-color> parameter to specify a color for the background using hex notation. |
Encouraging Prompts | Experimental Feature display → apipDisplay encouragement soundFileHref textMessageString |
Not available in AfA 3.0 |
Increased White Space | Experimental Feature display screenEnhancement → apipScreenEnhancement increasedWhiteSpacing |
Use the <text-appearance> feature, then use either/both of these parameters: <line-spacing><letter-spacing> |
Item Translation | content → apipContent itemTranslationDisplay [language] |
<item-translation xml:lang="###"> where "###" = BCP 47 |
Keyword Emphasis | content→ apipContent keywordEmphasis |
<keyword-emphasis> |
Keyword Translation | content → apipContent keyWordTranslations [language] |
Use <keyword-translation lang="###">, where language assignment uses BCP 47. |
Language Learner Guidance | content → apipContent languageLearner |
Use the <language-guidance> for content specifically created for this audience. Assign the candidate to other QTI 3 features that may ALSO benefit the candidate. |
Line Reader | control → apipControl lineReader colour (hexadecimal, opt) |
Use <line-reader> for the assignment. If you want to include a specific color, use the parameter <highlight-color> using hexidecimal notation. |
Magnification | display → apipDisplay apipScreenEnhancement Magnification display screenEnhancement magnification (magnification amount) |
Use the <magnification> feature for assignment. For the magnification amount, use the magnification parameter <all-content> and use a multiplying number (i.e. 1.5). |
Masking, Answer | display → apipDisplay masking maskingType=AnswerMask |
<answer-masking/> |
Masking, Custom | display → apipDisplay masking maskingType=CustomMask |
Removed from AfA. Use the extension mechanism of AfA 3.0 to enable this feature. |
Negatives Removed (Item Variant) | Experimental Feature content → apipContent negativesRemoved |
Not available in AfA 3.0 |
Reduced Answer Choices | Experimental Feature content → apipContent reducedAnswers |
Not available in AfA 3.0 |
Reverse Contrast | display → apipDisplay apipScreenEnhancement invertColourChoice |
Use <invert-display-polarity> for the concept. To specify a color for the foreground, use the <foreground> parameter in hexadecimal |
Scaffolding | Experimental Feature content → apipContent scaffolding |
Not available in AfA 3.0 |
Screen Reader | display screenReader (opt) usage (required, preferred, optionally use, prohibited) speechRate pitch volume linkIndication (speak link, different voice, sound effect, none) |
Use the <spoken> feature, then use the <reading-type> parameter using the "screen-reader" vocabulary. There is no "usage" in AfA 3.0. pitch= <pitch> volume= <volume> linkIndication= <link-indication> |
Sign Language | content → apipContent signing signingType (ASL, SignedEnglish) |
Use the <sign-language> feature, and then use the ISO 639-3 for the language assignment. For ASL, the feature and language is listed as <sign-language lang="ase"/>. For SignedEnglish (United States), the feature and language is listed as <sign-language lang="eng-US"/>. Note: British Sign Language is "bsl". |
Simplified Language (Whole Item Variant) | content → apipContent simplifiedLanguageMode |
Not available in AfA 3.0. QTI 3.0 has a <simplified-language-portions> feature which includes only those parts of the content that required simplification in the same item file, not in a separate variant. |
Spoken (Read Aloud) | content → apipContent spoken spokenSourcePreference (Human, Synthetic) readAtStartPreference userSpokenPreference (TextOnly, TextGraphics, NonVisual, GraphicsOnly) directionsOnly |
For the spoken feature, use the <spoken> feature. Then use the <reading-type> parameter and use the "computer-read-aloud" vocabulary. This is used in place of the userSpokenPreference of APIP. For mapping, you can assume TextOnly and TextGraphics are assigned to reading-type:computer-read-aloud, and the NonVisual is assigned to the reading-type: screen-reader, but the exact mapping may be different for specific programs. For directionsOnly, use the <spoken> parameter <restriction-type> and use the "directions-only" vocabulary. There is no readAtStartPrefence in AfA 3.0. There is no spokenSourcePreference in AfA 3.0. |
Structured Masking | Experimental Feature | Not available in AfA 3.0 |
Tactile | display tactile |
<tactile> |
3. Support-Specific Content
Content intended only for specific audiences, referred to as support-specific content (sometimes called "dormant" content), is handled differently between APIP and QTI 3.0.
In APIP, support-specific content is stored in audience-specific nodes within access elements. The access elements have a contentLinkInfo node to identify which part of the
default content within the itemBody
that the access element is supporting. In access elements, you point from the access element to
the itemBody
content.
In QTI 3.0, support-specific content is stored in cards (element qti-card
) within catalogs (element qti-catalog
). Catalogs are referenced by id from
the qti-item-body
content. You point from the qti-item-body
to the qti-catalog
, which is the reverse direction
of APIP. The cards contain the content (or point to a file or resource), and each card uses a support attribute to identify which support it contains. A catalog can contain any number
of supports, but only one card for each support is allowed in any single catalog.
The access element has been replaced with the catalog. The individual audience-specific nodes within the relatedElementInfo node have been replaced by the cards in the catalog.
A note about the supports allowed for cards: In addition to the pre-defined supports from the QTI 3.0 PNP candidate profile (see Table 1), you can put anything you want in that support attribute if you use the extension prefix. Example:
support= "ext:my-organization-any-text-you-want"
A reminder to implementers that it is best practice to use the lower-case, dash-separated naming convention of QTI 3.0 in the attribute string. You may also want to include an organizational prefix to prevent namespace clashes, and to be able to understand where the term came from.
You can put all kinds of content in the card for a "custom" support. However, that content may not be understood by other vendors automatically, as it is not part of the predefined supports of QTI 3.0. Likely, it would just be ignored.
We show an example of these custom supports in a spoken example in Section § 5.1 Spoken where the support (and card content) are used internally by the vendor, where the content is used to render pre-recorded sound files, with the intention of delivering the sound files to candidates.
4. APIP Features Used in Content without Inclusion Orders
There are several APIP features where content is provided for specific audiences without the use of inclusion orders. This section will cover the following features:
- Item Translation
- Language Learner Guidance
- Keyword Emphasis
- Keyword Translation.
4.1 Item Translation
APIP uses an item variant to provide a complete translation of item content. The same is true in QTI 3.0.
4.2 Language Learner Guidance
The Language Learner Guidance of APIP is most directly associated with the QTI 3.0 linguistic-guidance term. Any content specifically authored for the language learner audience should be translated into content for the linguistic-guidance support. There is a recognition in QTI 3.0 that any number of supports might useful to language learners, and additional content that helps explain the use of language is only one of them.
An example of APIP Language Learner Guidance Content:
|
In QTI 3.0, you need to make a reference from the word (by use of a span element) within the prompt to the catalog (this example retains the identifier name from the APIP code), then put the content in a card with the linguistic-guidance support, as shown in the following code:
An example of QTI 3.0 Language Learner Guidance (linguistic-guidance
) Content:
|
Note that in QTI 3.0, the supportOrder
node is no longer used for linguistic-guidance
, as the order is assumed to be the order of
the content within the qti-item-body
. Also, as a reminder, all QTI 3.0 specific elements (non-HTML5 elements) use a qti-
prefix,
so the <prompt>
element is changed to <qti-prompt>
in QTI 3.0.
4.3 Keyword Emphasis
In QTI 3.0, the notation of keyword emphasis is moved directly to the itemBody
content.
An example of APIP Keyword Emphasis:
|
In QTI 3.0, you use the QTI 3.0 specific class qti-keyword-emphasisqti-keyword-emphasis
on the element that you would like to have emphasis for only those candidates who have been assigned the keyword-emphasis
support in their PNP.
An example of QTI 3.0 Keyword Emphasis:
|
4.4 Keyword Translation
In QTI 3.0, translated content is moved into cardEntry nodes.
An example of APIP Keyword Translation:
|
While in QTI 3.0, you don't put the translation content directly in the keyword-translation card, rather, the different languages are
stored in different qti-card-entry
nodes. You can also provide a pre-recorded sound file of the translated word, either as a link within
the qti-html-content
, or as a separate qti-file-href
reference.
An example of QTI 3.0 Keyword Translation:
|
4.5 All Together Now
Three of the above features are to support the single word "accurate". In QTI 3.0, the supports can be contained in a single catalog. Similarly, in APIP all the supports can be stored in a single access element.
An example of APIP code for the Language Learner Guidance, Keyword Emphasis, and Keyword Translations:
|
A QTI 3.0 example with Two of the Supports in a Single Catalog and keyword-emphasis is a Special QTI 3.0 Class on the Span:
|
5. APIP Features with Inclusion Orders
One of the biggest changes between APIP and QTI 3.0 is the removal of inclusion orders. Instead, the order of presentation is the document order (DOM). Additional or replacement content for specific supports is added by making a reference to that content in the itemBody.
Many of the APIP features required not only access elements with audience-specific content, but also required the use of inclusion orders. There are inclusion orders for the following APIP audiences:
- Spoken, TextOnly
- Spoken, TextGraphics
- Spoken, NonVisual
- Spoken, GraphicsOnly
- Braille
- Sign Language
However, in the vast majority of real-world use cases the order prescribed in the APIP inclusion orders was the order of the itemBody
content. In addition,
the many different audiences were difficult to coordinate or edit.
In QTI 3.0, the document order is the order of presentation for all candidates. If you have additional content, or replacement content for specific supports, you make a
reference to that content from the itemBody
at the place and time it should be presented to the candidate.
QTI 3.0 has no more defaultOrder
and onDemandOrder
concepts because of the elimination of inclusion orders. For conversion purposes, they should be
blended into a single order, that of the DOM, because the reference will be switched from the qti-item-body
content to the
qti-catalog
. The catalogs can be listed within the qti-catalog
in any order, meaning the qti-catalog
order does not affect the presentation
order. Only the DOM dictates the order.
5.1 Spoken
One of the major differences in the spoken support between APIP and QTI 3.0 is what text is read out loud by text-to-speech (TTS) engine for candidates by default. In QTI 3.0,
the expectation has shifted to assuming the default content (the qti-item-body content
) is used by a TTS engine to read out loud. There are no inclusion orders or
access elements, assuming that the text to be read aloud exactly matches the text written in the qti-item-body
.
5.1.1 Spoken PNP
In APIP, a candidate's PNP can indicate a spoken userSpokenPreferenceuserSpokenPreference
or assign the candidate to a screenReader
preference. It is possible
to assign a candidate to both of these preferences, which can be confusing for a delivery system to interpret.
There are methods to directly transform access element content from APIP into QTI 3.0 catalog content, but the transformation will not provide any of the efficiencies of QTI 3.0 and any inclusion order information is lost in QTI 3.0. This is demonstrated in the example code below.
In QTI 3.0, a candidate is assigned to a spoken reading-type, either computer-read-aloud or screen-reader. The userSpokenPreference
concepts are represented differently
in QTI 3.0, where all of the userSpokenPreference
audiences are represented by the reading-type "computer-read-aloud". All content is assumed to be accessible by the
candidate, unless specifically restricted in their PNP. Those restrictions are stated in the restriction-type property. In addition, the PNP can contain specific requests for the
accessibility content provided in alt text or long descriptions.
See the table below for a possible mapping between the expected APIP audiences and QTI 3.0 supports. Specific programs may differ on what supports they use for the various APIP user Spoken preferences.
The Spoken PNP Mapping:
APIP PNP spoken userSpokenPreference |
QTI 3.0 PNP notation |
TextOnly |
|
TextGraphics |
|
NonVisual* |
|
DirectionsOnly |
|
* Alternatively, the NonVisual audience could be assigned to computer-read-aloud reading-type, though it is more likely that NonVisual learners regularly use a screen reader that they are familiar with.
5.1.2 Spoken Content
For QTI 3.0 content or in the QTI 3.0 PNP, there is no spokenSourcePreference
anymore (Human/synthetic). You can use PNP extensions for the candidate preference. In the QTI 3.0
item content, you will then use data-
attributes in qti-card-entry
elements to differentiate between human and synthetic sourced recordings (example: <qti-card-entry data-recording-source="human">
).
Below is a simple example that demonstrates the major differences between APIP and QTI 3.0 for the spoken support.
The APIP spoken support example:
|
In the QTI 3.0 Code there are no access elements or inclusion orders. Note that the pronunciation differences are marked up using inline SSML notation.
QTI 3 Spoken Support Example:
|
If you want to retain the APIP content, you can use the catalog methods of QTI 3.0. In this example, we have chosen to use the textToSpeechPronunciation
as
the content that should be read aloud for candidates requiring the spoken support.
A QTI 3.0 Spoken Support Example Retaining the APIP Content:
|
If you want to restrict the catalog to only the computer-read-aloud reading-type (and allow the screen-reader users to access the default content), you can add an attribute
to a qti-card-entry
to clarify that the content is only intended for the reading-type computer-read-aloud. The qti-card-entry
node is used when you
need to further differentiate a preference or need from a broader support feature. Below is an alternate to "catalog1" in the above example:
<qti-catalog id="catalog1">
<qti-card support="spoken">
<qti-card-entry data-reading-type="computer-read-aloud">
<qti-html-content>Answer the following question.</qti-html-content>
<qti-card-entry>
</qti-card>
</qti-catalog>
For pre-recorded sound files and to keep the reading script information of APIP (the spokenText string), you will need to use the catalog methods and supports that are not from the pre-defined set of QTI 3.0 supports.
The support "custom-text-to-speech-pronunciation" is used here as an internal storage device (and closely match the APIP textToSpeechPronunciation element name), where the sound files are generated from this content. The content within the custom-text-to-speech-pronunciation qti-card is not actually delivered to candidates.
You can also use a support named "custom-text-to-speech-ssml" (or whatever name works for you) to write SSML markup for TTS engines that support SSML for the generation of your pre-recorded sound files. Remember to use the "ext:" prefix for the custom support names.
QTI 3.0 Example with Pre-recorded Sound Files:
|
5.1.3 Text-to-Speech Suppression in QTI 3.0
In QTI 3.0, if you wish to suppress some content from being read aloud to candidates, use the special data-qti-suppress-tts
attribute and the
standardized QTI 3.0 vocabulary (computer-read-aloud, screen-reader, all), which correlates to the spoken reading-type vocabulary.
QTI 3.0 Example with the Text-To-Speech (TTS) Suppression Attribute:
|
5.2 Braille
Use of the default content is preferred in APIP, and remains so in QTI 3.0. While it is theoretically possible to convert any brailleText
content to QTI 3.0 using custom
support extensions, it is highly recommended that braille users access the qti-item-body
content directly using screen reader software with a refreshable braille display,
unless the user has a decided preference for embossed paper braille.
5.3 Sign Language
There are two types of sign language supported in APIP: ASL (American Sign Language) and Signed English. APIP uses the accessElements to refer to itemBody content and supply references to all or portions of video content. The accessElements containing these sign language supports are then listed in the appropriate inclusion order.
This method is particularly useful for associating default content to sign language content for candidates requiring/requesting sign language translations/representations.
ASL implementations in APIP frequently connect fairly large portions of the content to videos. A single video can be used for the whole of the item/passage content, or one video can be associated with the stem and a separate video with the response options.
The APIP example below associates a video file for a candidate who has indicated that they need American Sign Language (ASL) for their assessment presentation (via their APIP PNP).
Sign Language in APIP Example:
|
In QTI 3.0, use the catalog methods for the content markup. In the example below, the support for this candidate is "sign-language" with an ASL language preference
("ase" in the [BCP47]), stated in the lang attribute in the qti-card-entry element. There are two catalogs for the two parts of this item content, where
each part points to a catalog to support each div. The URIs for the video file references in the the first two catalogs use the Media Fragments URI 1.0 notation as
recommended by the W3C as of 25 September, 2012. Alternatively, two separate videos could have been used for this example. The sequence of play is determined by the
order of reference from the itemBody content, where references from the top of the document are played before references further down the document. The ASL qti-card-entry
is also designated as the "default," so in the event that the PNP did not supply the required language, the ASL video will be delivered to the candidate.
QTI 3.0 Sign Language Example:
|
The QTI 3.0 example below shows how a single video that applies to the whole item can be referenced from the qti-item-body
element. In this example, only one
language option is available. A qti-card-entry
node is still used because additional language versions could be added later, and a presentation system will be
coded to look for the lang attribute to clarify the specific language of the content. Using the lang
attribute also removes any ambiguity that could occur in
the future about who the video files are intended to support. The qti-card-entry
contains a reference to a video, with multiple file formats supplied.
Sign Language for QTI 3.0 with a Single Video File for the Whole Item Example:
|
6. Companion Materials and External Supplemental Accessibility
In QTI 3.0, the qti-companion-materials-info
element is a top level element within qti-assessment-item
instead of a node within apipAccessibility
.
Use of the node should be above the qti-item-body
.
In QTI 3.0, readingPassage is no longer used within qti-companion-materials-info
. Reading Passages should be represented as a shared stimulus file, which is referenced
from the qti-assessment-stimulus-ref
element.
A QTI 3.0 example of Companion Materials:
|
A QTI 3.0 example of Shared Stimulus:
|
QTI 3.0 has removed the InfoControl
element from assessment items. Use the companion materials where appropriate. If using companion materials doesn't fit with the
use case, consider using a PCI for the functionality required.
7. Reference to Pronunciation Lexicons
QTI 3.0 does not reference pronunciation lexicons from within the qti-assessment-item
file, but only makes the reference to PLS files from a content package,
where the PLS file is assumed to apply to ALL the assessment content. There is no longer support for referencing CSS3 Speech files in QTI 3.0 packages, though because it
is CSS, a reference to any stylesheet could be made from the stylesheet node. No 1EdTech certified QTI 3.0 systems are expected to support CSS3 Speech.
A QTI 3.0 example of a Content Package referencing a PLS file is:
|
A. Revision History
This section is non-normative.
A.1 Version History
Version No. | Release Date | Comments |
---|---|---|
Final Release 1.0 | 1 May 2022 | The first final release of this document as part of the QTI 3.0 specification set. |
B. References
B.1 Normative references
- [APIP-IMPL-10]
- APIP Best Practice and Implementation Guide v1.0. 1EdTech Consortium. March 2014. 1EdTech Final Release. URL: https://www.imsglobal.org/APIP/apipv1p0/APIP_BPI_v1p0.html
- [BCP47]
- Tags for Identifying Languages. A. Phillips, Ed.; M. Davis, Ed.. IETF. September 2009. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc5646
- [RFC2119]
- Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
B.2 Informative references
- [QTI-OVIEW-30]
- Question & Test Interoperability (QTI) 3.0: Overview. Mark Hakkinen; Padraig O'hiceadha; Mike Powell; Tom Hoffman; Colin Smythe. 1EdTech Consortium. May 2022. 1EdTech Final Release. URL: https://www.imsglobal.org/spec/qti/v3p0/oview/
C. List of Contributors
The following individuals contributed to the development of this document:
Name | Organization | Role |
---|---|---|
Arjan Aarnink | Cito | |
Vijay Ambati | ACT, Inc. | |
Jérôme Bogaerts | Open Assessment Technologies | |
Shiva Bojjawar | McGraw-Hill Education | |
Catriona Buhayar | NWEA | |
Jason Carlson | ACT, Inc. | |
Jason Craft | Pearson | |
Rich Dyck | Data Recognition Corporation | |
Paul Grudnitski | Independent Invited Expert | |
Mark Hakkinen | ETS | Co-chair |
Susan Haught | 1EdTech | |
Thomas Hoffmann | 1EdTech | Editor |
Rob Howard | NWEA | |
Stephen Kacsmark | Instructure | |
Justin Marks | NWEA | |
Amy Marrich | Open Assessment Technologies | |
Mark McKell | Pearson | |
Mark Molenaar | Apenutmize | |
Padraig O'hiceadha | Houghton Mifflin Harcourt | Co-chair |
Mike Powell | Pearson | Co-chair |
Julien Sebire | Open Assessment Technologies | |
Colin Smythe | 1EdTech | Editor |
Tjeerd Hans Terpstra | Cito | |
Travis Thompson | Data Recognition Corporation | |
Wyatt Vanderstucken | ETS | |
Jason White | ETS |