Abstract

The 1EdTech Access for All Personal Needs and Preferences (AfA PNP) Service 1.0 creates an API wrapper that surrounds the original AFA PNP data model [[AFAPNP-DM-30]] with a REST-based service definition using JavaScript Object Notation (JSON) payloads [[AFAPNP-RJ-10]].

The original Access For All Specification (AfA) is intended to promote an inclusive user experience by enabling the matching of the characteristics of resources to the needs and preferences of individual users. The AfA specification consists of a common language for describing:

The original AfA PNP data model specification is intended to meet the needs of learners with disabilities and of anyone in a disabling context. The purpose of the AfA PNP Specification is to provide a machine-readable method of stating user needs and preferences with respect to digitally based education or learning. The AfA PNP specification can be used independently, for example to deliver the required or desired user interface to the user, or in combination with the AfADRD [[AFADRD-DM-30]] to deliver digital resources that meet a user's needs and preferences.

This document defines how to obtain access to an AfA PNP Service using the Learning Tools Interoperability (LTI)® Advantage functionality [[LTI-13]]. This provides a standard for enabling a tool to obtain the personal needs and preferences record for the user's learning activity.

Introduction

Scope and Context

This document builds upon all the concepts and terms introduced in the Learning Tools Interoperability (LTI)® 1.3 specification [[LTI-13]], specifically:

This document defines how to obtain access to an Access For All Personal Needs and Preferences (AfA PNP) Service using the Learning Tools Interoperability (LTI)® Advantage functionality [[LTI-13]]. This provides a standard for enabling a tool to obtain the personal needs and preferences record for the user's learning activity.

The 1EdTech Access for All Personal Needs and Preferences (AfA PNP) Service 1.0 creates an API wrapper that surrounds the original AFA PNP data model [[AFAPNP-DM-30]] with a REST-based service definition using JavaScript Object Notation (JSON) payloads [[AFAPNP-RJ-10]]. The original Access For All Specification (AfA) is intended to promote an inclusive user experience by enabling the matching of the characteristics of resources to the needs and preferences of individual users.

Conformance Statements

Structure of this Document

The structure of the rest of this document is:

An outline description of the stucture of the rest of this document.
2. PERSONAL NEEDS & PREFERENCES (PNP) SERVICE An overview of the AfA PNP service, see [[AFAPNP-SM-10]], and the corresponding REST/JSON binding [[AFAPNP-RJ-10]].
3. PROVIDING PNP INFORMATION USING LTI Explanation of how this new LTI Advantage service makes use of the LTI Advantage Core functionality to enable access to an AfA PNP server (access to the server.
4. PNP SERVICE CONNECTOR CLAIMS IN LTI MESSAGES Definition and description of the new custom claims that are used in the LTI launch mesage to provide access to the corresponding AfA PNP service.
5. BEST PRACTICES The best practice RECOMMENDATIONS for LTI Advamntage Platforms and/or Tools that support the LTI AfA PNP Connector Service functionality.
6. CONFORMANCE & CERTIFICATION The certification process and conformance requirements for LTI Advantage certified Platforms or Tools to become certified for the LTI AfA PNP Connector Service.
APPENDIX A – REVISION HISTORY History of the various published versions of this document. This includes details of the changes made with respect to the previously published version.
APPENDIX B – REFERENCES The details of the set of documents cited within this document.
APPENDIX C – LIST OF CONTRIBUTORS The people who were responsible for the creation of this document.

Acronyms

AfA
Access for All
ASL
American Sign Language
AT
Assistive Technology
DRD
Digital Resource Description
HTTPS
Secure HyperText Tranport Protocol
LTI
Learning Tools Interoperability
JSON
JavaScript Object Notation
JWT
JSON Web Token
PNP
Personal Needs & Preferences
REST
Repesentational State Transfer
TLS
Transport Layer DSecurity
URI
Uniform Resource Identifier
URL
Uniform Resource Locator

Personal Needs & Preferences (PNP) Service

The information presented in this Section is taken for the formal service definition documents [[AFAPNP-SM-10]] and [[AFAPNP-RJ-10]]. The aim of the repetition of this material herein is to identify the changes to the service and data models when access is enabled through an LTI launch to the Tool requiring the AfA PNP records. Therefore, reference to the source service documents is essential when using the actual AfA PNP Service.

Overview of the PNP Service

The set of endpoints defined in the AfA PNP Service is listed in the following Table. When access is enabled via an LTI launch ONLY the getAfAPNPRecordForUserForActivity endpoint is available.

The Set of REST Endpoints and the URL-leaf Values.
Service Call REST Endpoint HTTP Verb Available in LTI
getAfAPNPRecordForUserForActivity /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords

Get the AfA PNP record for the identified user (userSourcedId) undertaking the identifiy learning activity (activitySourcedId).
GET Yes
getAfAPNPRecordSetForUser /users/{userSourcedId}/afapnprecords GET No
getAllAfAPNPRecords /afapnprecords GET No

The corresponding points to be noted due to the availability of this single endpoint are:

Overview of the AfA PNP Service Data Model

The schematic diagram "AccessForAllPNP Record" data model is shown in the UML Figure below. The full definition for all of these properties is available in [[AFAPNP-SM-10]].

UML diagram of the AfA PNP record.
AfA PNP record definition.

The definition for each property is:

Providing PNP Information Using LTI

AfA PNP Endpoint Service Workflow Overview

The general workflow around the Caliper Endpoint involves these two general steps:

Communicating the Availability of the Service

The platform MUST communicate the availability of the AfA PNP Connector Service in every LTI message where the service is relevant. Where use of the service is not relevant (for example, if a tool does not support accessibility capabilities), the platform MUST NOT include the availability information in any LTI messages.

The platform MAY change the afapnp_endpoint_hosturl value when it deems necessary; therefore, by best practice, the tool should check with each message for the AfA PNP Endpoint URL to use for reporting on activity. By best practice, the platform should maintain the presence of the AfA PNP Endpoint URL communicated within a message for some length of time, as tools may delay some time after the user actually completed activity before sending events related to the activity.

Using the Service

To use the service, the tool MUST acquire a properly scoped authorization token, and must include it in requests to the service, as defined in the 1EdTech Security Framework [[SEC-11]] document. As with both the core LTI and AfA PNP Service specifications, this specification requires the use of HTTPS (with TLS) with all interactions with the AfA PNP endpoints.

Obtaining the access tokens for the AfA PNP follows the process used by all similar services supplied by an LTI Platform. Access tokens MUST protect all the services described by the platform; tools MUST retrieve these access tokens using the JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants as specified in the 1EdTech Security Framework - Section 4.1.1 Using JSON Web Tokens with OAuth 2.0 [[SEC-11]]. Acquisition of an access token requires three pieces of information:

All of the above data MUST be issued by the LTI Platform during registration.

A resource server, e.g. platform instance, is uniquely identified by its issuer, client_id, and deployment_id. Therefore when requesting an OAuth 2 bearer token the client i.e. Tool, SHOULD include the deployment_id as part of the JWT to request an access token.

PNP Service Connector Claims in LTI Messages

The optional https://purl.imsglobal.org/spec/lti-afapnp/claim/afapnp-endpoint-service claim's value contains properties about the available AfA PNP service. When including this claim in an LTI message, the sending platform, by best practice, indicates to the receiving tool that it expects the tool to obtain the AFA Record for use with this tool and the corresponding learning activity. The set of child claims are described in the Table below.

The set of claims available to provide access to the AfA PNP Service.
Claim Name Data-type Multiplicity Definition
afapnp_endpoint_hosturl String (Format=URL) REQUIRED [1] The endpoint from which the AFA PNP records MUST be obtained. This is ONLY the identified host i.e. the appropriate URL leaf structure as defined in the specification MUST be appended to this URL.
afapnp_activity_ids String REQUIRED [1..*] The identifier(s) for the activity for which the corresponding AFA PNP record is needed. Each learning activity MAY have a different AfA PNP record.
scopes String (Format=URI) REQUIRED [1..*] Access to the service MUST be controlled by the authorization scope(s) defined here. This MAY include new scopes not defined in the base specification.

An example of the set of claims is shown in the Figure below.

Example of the set of AfA PNP claims in an LTI message.

{
  
  "https://purl.imsglobal.org/spec/lti/claim/custom": {
     "https://purl.imsglobal.org/spec/lti-afapnp/claim/afapnp-endpoint-service": {
        "afapnp_endpoint_hosturl": "https://example.edu/lti/afapnp-hosturl",
        "afapnp_activity_ids": [
            "1c519ff7-3dfa-4764-be48-d2fb35a2925a"
        ],
        "scopes": [
           "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly"
        ]
     }
  }
  
}
				

Best Practices

ED NOTES are:

TO BE COMPLETED IN THE FINAL RELEASE.

Conformance and Certification

TBD...

Conformance Testing Process

The process for conformance testing implementations of LTI AfA PNP Connector Service 1.0 includes the following:

All Tests for the appropriate operational modes must be passed successfully to be considered 1EdTech compliant.

NOTE: There is a separate certification process for systems that are AfA PNP Service Providers [[AFAPNP-CONF-10]].

Conformance Mark

After you have submitted your successful conformance information to [email protected], and received confirmation and a registration number from 1EdTech you may then apply the appropriate conformance mark. The 1EdTech conformance chart will list your conformance details. If you have any questions, please feel free to contact us at any point.

Membership in the LTI Advantage Alliance is the only way to achieve official conformance to the LTI AfA PNP Connector Service 1.0. Products without a 1EdTech Conformance Registration Number are not considered to be compliant by 1EdTech.

LTI Tool AfA PNP Service Connector Conformance Requirements

TO BE COMPLETED IN THE FINAL RELEASE.

LTI Platform AfA PNP Service Connector Conformance Requirements

TO BE COMPLETED IN THE FINAL RELEASE.

Revision History

Version History

Publication history and revision details for this specification.
Version No. Release Date Comments
Candidate Final Draft 1 12th December, 2023 A draft Candidate Final release of this document. This is for review by the 1EdTech LTI and QTI Project Groups.