Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional Implementations section #541

Merged
merged 15 commits into from
Nov 21, 2023
Merged

Add optional Implementations section #541

merged 15 commits into from
Nov 21, 2023

Conversation

WilcoFiers
Copy link
Collaborator

@WilcoFiers WilcoFiers commented Sep 8, 2023

Follow-up of #522 (which was out of date and had merge issues)

@@ -544,6 +545,8 @@ Test Cases {#test-cases}

Test cases are (snippets of) content that can be used to validate the implementation of ACT Rules. Each rule <em class="rfc2119">must</em> have one or more test cases for `passed`, `failed`, and `inapplicable` [=outcomes=]. A test case consists of two pieces of data, a snippet of each [input aspect](#input-aspects) for a rule, and the expected outcome for that rule. Test cases serve two functions, firstly as example scenarios for readers to understand when the outcome of a rule is `passed`, `failed`, or `inapplicable`. It also serves developers and users of accessibility testing tools and methodologies to validate that a rule is correctly implemented.

All `passed` and `inapplicable` test cases of an ACT Rule <em class="rfc2119">must</em> satisfy at least one of that rule's [=accessibility requirements=]. For all `failed` test cases, all accessibility requirements <em class="rfc2119">must</em> be *not satisfied*.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a backward compatible change. We need to think about how we want to handle that. Maybe only require this if the rule has metadata indicating it was created for ACT-RF 1.1?

@@ -544,6 +545,8 @@ Test Cases {#test-cases}

Test cases are (snippets of) content that can be used to validate the implementation of ACT Rules. Each rule <em class="rfc2119">must</em> have one or more test cases for `passed`, `failed`, and `inapplicable` [=outcomes=]. A test case consists of two pieces of data, a snippet of each [input aspect](#input-aspects) for a rule, and the expected outcome for that rule. Test cases serve two functions, firstly as example scenarios for readers to understand when the outcome of a rule is `passed`, `failed`, or `inapplicable`. It also serves developers and users of accessibility testing tools and methodologies to validate that a rule is correctly implemented.

All `passed` and `inapplicable` test cases of an ACT Rule <em class="rfc2119">must</em> satisfy at least one of that rule's [=accessibility requirements=]. For all `failed` test cases, all accessibility requirements <em class="rfc2119">must</em> be *not satisfied*.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention this is not about the secondary requirements?
(i.e. Failed case do not need to fail all secondary requirements)

Comment on lines 713 to 716
<dt><dfn>Implementation Procedure</dfn><dt>
<dd>
<p>A procedure resulting in an [=outcome=]. The procedure can be a step by step description of how to manually perform the test, a fully automated test, or some combination of manual and automated testing.</p>
</dd>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(⚠️ set theory / computability vocabulary included)
So, a (mathematical or computer program) function can either be described as an intention, i.e. a formula or code to compute it (e.g. x => x*x is an intention for the squaring function); or it can be described as an extension, i.e. the set of (input, output) pairs (e.g. { (0, 0), (1, 1), (2, 4), ... }for the squaring function.
Intentions are usually easier to manipulate and we are used to them. Extensions are sometimes useful to consider.

Anyway, here the procedure/check is described as an intention ("a step by step procedure"). But ultimately, the only thing that matters for consistency is the outcomes it gives, i.e. its extension.
So, I'm wondering whether it could make sense to instead define the procedure/check as "a set of outcomes" rather than as the piece of code that produces this set.
It may be a bit harder to grasp at first, but it might allow to simplify the other definitions down the line. It is also a bit closer to what we do in practice since we work with the implementation reports (an extension) rather than the code itself (an intension).

act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Show resolved Hide resolved
act-rules-format/act-rules-format.bs Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
act-rules-format/act-rules-format.bs Outdated Show resolved Hide resolved
A [=set of checks=] is [=consistent=] with an ACT Rule if it meets all requirements for a [=consistent|consistent check=]. The [=outcomes=] for this set of checks is a list of all outcomes of checks that are partially consistent with the ACT Rule. The accessibility requirements of this set of checks is a list of all accessibility requirements of checks that are partially consistent with the ACT rule.

<aside class=example>
<header>Example of a consistent set of checks:</header>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really like this example!

@@ -544,6 +545,8 @@ Test Cases {#test-cases}

Test cases are (snippets of) content that can be used to validate the implementation of ACT Rules. Each rule <em class="rfc2119">must</em> have one or more test cases for `passed`, `failed`, and `inapplicable` [=outcomes=]. A test case consists of two pieces of data, a snippet of each [input aspect](#input-aspects) for a rule, and the expected outcome for that rule. Test cases serve two functions, firstly as example scenarios for readers to understand when the outcome of a rule is `passed`, `failed`, or `inapplicable`. It also serves developers and users of accessibility testing tools and methodologies to validate that a rule is correctly implemented.

Every `passed` and `inapplicable` test cases of an ACT Rule <em class="rfc2119">must</em> satisfy all the rule's [=conformance requirements=]. For every `failed` test cases, all conformance requirements <em class="rfc2119">must</em> be *not satisfied*.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tripped a few folks up, could do with more of an explanation.

@WilcoFiers WilcoFiers merged commit 27f92b5 into main Nov 21, 2023
2 of 3 checks passed
@WilcoFiers WilcoFiers deleted the consistency branch November 21, 2023 14:19
github-actions bot added a commit that referenced this pull request Nov 21, 2023
SHA: 27f92b5
Reason: push, by WilcoFiers

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
github-actions bot added a commit that referenced this pull request Nov 21, 2023
SHA: 27f92b5
Reason: push, by WilcoFiers

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants