Skip to content

Commit 099e5e6

Browse files
authored
Improve descriptiveness of elements (#328)
* Added descriptive alt text to diagram images * Separated image descriptions into alt and figcaption * Removed unnecessary links * Added screen reader labels for PDF links
1 parent 5394cb8 commit 099e5e6

File tree

5 files changed

+104
-62
lines changed

5 files changed

+104
-62
lines changed

pages/documentation/documentation.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ <h2>OData Version 4.01</h2>
88
<p>OData has been <a href="https://www.oasis-open.org/news/pr/oasis-approves-odata-4-0-standards-for-an-open-programmable-web">standardized by OASIS</a> and <a href="https://jtc1info.org/isoiec-jtc-1-approves-oasis-odata-standard-for-open-data-exchange/">approved as an ISO/IEC International Standard</a>.</p>
99
<p>The OASIS OData Technical Committee has published the latest OData 4.01 draft as a <a href="/blog/OData-401-Committee-Spec-Published">Committee Specification.</a> The following references the latest published Committee Specification documents.</p>
1010
<ul>
11-
<li><a href="http://docs.oasis-open.org/odata/new-in-odata/v4.01/new-in-odata-v4.01.html">What’s New in OData Version 4.01</a> | <a href="http://docs.oasis-open.org/odata/new-in-odata/v4.01/new-in-odata-v4.01.pdf">PDF</a></li>
12-
<li><a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html">Part 1: Protocol</a> | <a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.pdf">PDF</a></li>
13-
<li><a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html">Part 2: URL Conventions</a> | <a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.pdf">PDF</a></li>
14-
<li><a href="http://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html">OData JSON Format</a> | <a href="http://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.pdf">PDF</a></li>
15-
<li><a href="http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html">OData Common Schema Language (CSDL) XML Representation</a> | <a href="http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.pdf">PDF</a></li>
16-
<li><a href="http://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html">OData Common Schema Language (CSDL) JSON Representation</a> | <a href="http://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.pdf">PDF</a></li>
11+
<li><a href="http://docs.oasis-open.org/odata/new-in-odata/v4.01/new-in-odata-v4.01.html">What’s New in OData Version 4.01</a> | <a href="http://docs.oasis-open.org/odata/new-in-odata/v4.01/new-in-odata-v4.01.pdf" aria-label="'What's new in ODATA version 4.01 PDF'">PDF</a></li>
12+
<li><a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html">Part 1: Protocol</a> | <a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.pdf" aria-label="'Part 1: Protocol' PDF">PDF</a></li>
13+
<li><a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html">Part 2: URL Conventions</a> | <a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.pdf" aria-label="'Part 2: URL Conventions' PDF">PDF</a></li>
14+
<li><a href="http://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html">OData JSON Format</a> | <a href="http://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.pdf" aria-label="'OData JSON Format' PDF">PDF</a></li>
15+
<li><a href="http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html">OData Common Schema Language (CSDL) XML Representation</a> | <a href="http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.pdf" aria-label="'OData Common Schema Language (CSDL) XML Representation' PDF">PDF</a></li>
16+
<li><a href="http://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html">OData Common Schema Language (CSDL) JSON Representation</a> | <a href="http://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.pdf" aria-label="'OData Common Schema Language (CSDL) JSON Representation' PDF">PDF</a></li>
1717
<li><a href="http://docs.oasis-open.org/odata/odata/v4.01/cs01/abnf/odata-abnf-construction-rules.txt">OData ABNF</a></li>
1818
<li><a href="https://github.com/oasis-tcs/odata-vocabularies/tree/master/vocabularies/">Standardized Vocabularies</a></li>
19-
<li><a href="http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.html">Aggregation Extension (Committee Specification) </a> | <a href="http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.pdf">PDF</a></li>
19+
<li><a href="http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.html">Aggregation Extension (Committee Specification) </a> | <a href="http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.pdf" aria-label="'Aggregation Extension (Committee Specification)' PDF">PDF</a></li>
2020
</ul>
2121
<p><strong>To get started learning OData V4</strong>, we recommend working through the <a href="/getting-started/basic-tutorial">Beginner Tutorial</a>
2222
and <a href="/getting-started/advanced-tutorial">Advanced Tutorial</a> first.

pages/documentation/odata-version-3-0.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ <h5 class="alert alert-success">OData Version 4.0 is the current recommended ver
99
<br><br>
1010
<a href="/documentation/" class="alert-link" title=""><span class="glyphicon glyphicon-arrow-right"></span> Go to OData Version 4.0</a></h5>
1111
<ul>
12-
<li><a href="/documentation/odata-version-3-0/odata-version-3-0-core-protocol">OData Version 3.0 Core Protocol</a> | <a href="http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-ODATA].pdf">PDF</a></li>
13-
<li><a href="/documentation/odata-version-3-0/common-schema-definition-language-csdl">OData Version 3.0 Common Schema Definition Language (CSDL)</a> | <a href="http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MC-CSDL].pdf">PDF</a></li>
12+
<li><a href="/documentation/odata-version-3-0/odata-version-3-0-core-protocol">OData Version 3.0 Core Protocol</a> | <a href="http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-ODATA].pdf" aria-label="'OData Version 3.0 Core Protocol' PDF">PDF</a></li>
13+
<li><a href="/documentation/odata-version-3-0/common-schema-definition-language-csdl">OData Version 3.0 Common Schema Definition Language (CSDL)</a> | <a href="http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MC-CSDL].pdf" aria-label="'OData Version 3.0 Common Schema Definition Language (CSDL)' PDF">PDF</a></li>
1414
<li><a href="/documentation/odata-version-3-0/url-conventions">OData Version 3.0 Url Conventions</a></li>
1515
<li><a href="/documentation/odata-version-3-0/abnf">OData Version 3.0 ABNF</a></li>
1616
<li><a href="/documentation/odata-version-3-0/batch-processing">OData Version 3.0 Batch Processing</a></li>

pages/documentation/uri-conventions.html

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ <h2>Introduction</h2>
1414
<p>The terms used in this document are defined in the <a href="../terminology">[OData:Terms]</a> document.</p>
1515
<h2>1. URI Components</h2>
1616
<p>A URI used by an OData service has up to three significant parts: the <a href="../uri-conventions#ServiceRootUri"> service root URI</a>, <a href="../uri-conventions#ResourcePath">resource path</a> and <a href="../uri-conventions#QueryStringOptions"> query string options</a>. Additional URI constructs (such as a fragment) MAY be present in a URI used by an OData service; however, this specification applies no further meaning to such additional constructs.</p>
17-
<p><a href="/assets/ODataUri.png"><img src="/assets/ODataUri.png" alt="ODataUri" width="714" height="32" class="aligncenter size-full wp-image-1831" /></a></p>
17+
<figure>
18+
<img src="/assets/ODataUri.png" alt="Diagram of the structure of an OData URI." width="714" height="32" class="aligncenter size-full wp-image-1831" />
19+
<figcaption class="visually-hidden">Structure of an OData URI, which consists of a scheme, host, optional colon and port, service root, optional resource path, and optional question mark followed by query options.</figcaption>
20+
</figure>
1821
<p>The following are two example URIs broken down into their component parts:</p>
1922
<pre><code>https://services.odata.org/OData/OData.svc _______________________________________/
2023
| service root URI </code>
@@ -48,12 +51,18 @@ <h2>3. Resource Path</h2>
4851
<h3>3.1. Addressing Entries</h3>
4952
<hr />
5053
<p>The basic rules for addressing a Collection (of Entries), a single Entry within a Collection, as well as a property of an Entry are illustrated in the figure below.</p>
51-
<p><a href="/assets/ResourcePath.png" rel="attachment wp-att-9621"><img class="wp-image-9621" alt="ResourcePath" src="/assets/ResourcePath.png" width="1154" height="101" /></a></p>
54+
<figure>
55+
<img class="wp-image-9621" alt="Diagram of the structure of a resource path." src="/assets/ResourcePath.png" width="1154" height="101" />
56+
<figcaption class="visually-hidden">Structure of a resource path, showing multiple structure options as follows. To address an entry, one must first address a specific collection. A Collection may optionally be followed by a forward slash and $count. Alternatively, it may be followed by a KeyPredicate. After this KeyPredicate is one or more forward slash and navigation property, one or more forward slash and ComplexType, optional one or more forward slash and Property, and optional one or more forward slash and $value. The navigation property may be either a NavPropSingle or a NavPropCollection. If the collection is chosen, it is directly followed by either a KeyPredicate or an optional forward slash and $count. If the latter option is chosen, this must be the last navigation property in the sequence.</figcaption>
57+
</figure>
5258
<ul>
5359
<li><strong>Collection</strong>: The name of a Collection or Service Operation (which returns a Collection of Entries) exposed by the service.</li>
5460
<li><strong>KeyPredicate</strong>: A predicate that identifies the value(s) of the key Properties of an Entry. If the Entry has a single key Property the predicate may include only the value of the key Property. If the key is made up of two or more Properties, then its value must be stated using name/value pairs. More precisely, the syntax for a KeyPredicate is shown by the following figure.</li>
5561
</ul>
56-
<p><a href="/assets/keyPredicate.png"><img src="/assets/keyPredicate.png" alt="keyPredicate" width="356" height="83" class="aligncenter size-full wp-image-1821" /></a></p>
62+
<figure>
63+
<img src="/assets/keyPredicate.png" alt="Diagram of the structure of a KeyPredicate." width="356" height="83" class="aligncenter size-full wp-image-1821" />
64+
<figcaption class="visually-hidden">Structure of a KeyPredicate, which starts and ends with an opening and closing parenthesis, respectively. Between the parentheses may be either a single KeyValue or a three-piece portion containing a Property, equals sign, and KeyValue. There may be more than one three-piece portion if these portions are separated by commas.</figcaption>
65+
</figure>
5766
<ul>
5867
<li><strong>NavPropSingle</strong>: The name of a Navigation Property defined by the Entry associated with the prior path segment. The Navigation Property must identify a single entity (that is, have a "to 1" relationship).</li>
5968
<li><strong>NavPropCollection</strong>: Same as NavPropSingle except it must identify a Collection of Entries (that is, have a "to many" relationship).</li>
@@ -101,7 +110,10 @@ <h3> 3.2. Addressing Links between Entries</h3>
101110
<hr />
102111
<p>Much like the use of links on Web pages, the data model used by OData services supports relationships as a first class construct. For example, an OData service could expose a Collection of Products Entries each of which are related to a Category Entry.</p>
103112
<p>Associations between Entries are addressable in OData just like Entries themselves are (as described above). The basic rules for addressing relationships are shown in the following figure.</p>
104-
<p><a href="/assets/addressingRelationships.png" rel="attachment wp-att-10141"><img class="size-full wp-image-10141" alt="addressingRelationships" src="/assets/addressingRelationships.png" width="510" height="29" /></a></p>
113+
<figure>
114+
<img class="size-full wp-image-10141" alt="Diagram of the structure for addressing relationships." src="/assets/addressingRelationships.png" width="510" height="29" />
115+
<figcaption class="visually-hidden">Structure for addressing relationships, which consists of a URI identifying a single entry, forward slash, $links, forward slash, and NavigationProperty.</figcaption>
116+
</figure>
105117
<ul>
106118
<li><strong>NavigationProperty</strong>: The name of a Navigation Property that is declared on the Entry associated with the path segment prior to the "$links" segment.</li>
107119
</ul>
@@ -120,7 +132,10 @@ <h3> 3.2. Addressing Links between Entries</h3>
120132
<h3> 3.3. Addressing Service Operations</h3>
121133
<hr />
122134
<p>OData services can expose Service Operations which, like Entries, are identified using a URI. Service Operations are simple functions exposed by an OData service whose semantics are defined by the author of the function. A Service Operation can accept primitive type input parameters and can be defined to return a single primitive, single complex type, collection of primitives, collection of complex types, a single Entry, a Collection of Entries, or void. The basic rules for constructing URIs to address Service Operations and to pass parameters to them are illustrated in the following figure.</p>
123-
<p><a href="/assets/addressingServiceOperations.png" rel="attachment wp-att-9871"><img class="wp-image-9871" alt="addressingServiceOperations" src="/assets/addressingServiceOperations.png" width="644" height="48" /></a></p>
135+
<figure>
136+
<img class="wp-image-9871" alt="Diagram of the structure of a URI addressing a service operation." src="/assets/addressingServiceOperations.png" width="644" height="48" />
137+
<figcaption class="visually-hidden">Structure of a URI addressing a service operation, starting with a ServiceRootUri and ServiceOperation. These may optionally be followed by a question mark and one or more three-piece portion containing a ParamName, equals symbol, and ParamValue.</figcaption>
138+
</figure>
124139
<ul>
125140
<li><strong>ServiceRootUri</strong>: The <a href="../uri-conventions#ServiceRootUri">service root URI</a> identifies the root of the OData service.</li>
126141
<li><strong>ServiceOperation</strong>: The name of a Service Operation exposed by an OData service.</li>

0 commit comments

Comments
 (0)