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

Create documentation/aria-idl.md #2340

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

rahimabdi
Copy link
Contributor

Closes #2310

This PR adds a new aria-idl.md documentation file that provides general explanation about IDL, how ARIA IDL works and chronology/history of key ARIA IDL decisions.

Copy link

netlify bot commented Sep 20, 2024

Deploy Preview for wai-aria ready!

Name Link
🔨 Latest commit 09ab80f
🔍 Latest deploy log https://app.netlify.com/sites/wai-aria/deploys/66ed1d7ae255760008c40f47
😎 Deploy Preview https://deploy-preview-2340--wai-aria.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Member

@keithamus keithamus left a comment

Choose a reason for hiding this comment

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

This LGTM overall. Some minor nits;

- ***Standardization***: Web APIs (e.g., `getAttribute()`) are implemented the same which ensures consistent behavior and usage across browsers
- ***Language-independent***:
- Define interfaces in a way that isn’t tied to a programming language, e.g., could have JavaScript/C++/Python or any other language implementation
- Easier to generate bindings (single web IDL spec can be used to generate bindings for multiple languages)
Copy link
Member

Choose a reason for hiding this comment

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

I think this sentence could read a little easier? Maybe this is an improvement:

Suggested change
- Easier to generate bindings (single web IDL spec can be used to generate bindings for multiple languages)
- Can be used to generate code (IDL files can be used to generate code across multiple languages)

- Define interfaces in a way that isn’t tied to a programming language, e.g., could have JavaScript/C++/Python or any other language implementation
- Easier to generate bindings (single web IDL spec can be used to generate bindings for multiple languages)
- Facilitates cross-language integration (e.g., Python backend can communicate with JavaScript frontend)
- ***Feature detection***: If (el.someIDLAttribute) is true, then the feature is supported which facilitates user agent detection for that particular attribute
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- ***Feature detection***: If (el.someIDLAttribute) is true, then the feature is supported which facilitates user agent detection for that particular attribute
- ***Feature detection***: If (`'someIDLAttribute' in el`) is `true`, then the feature is supported; facilitating user agent detection for that particular attributes

- ***Documentation***:
- Specifies how web APIs should behave for both browser implementers and developers
- Interfaces are largely self documenting
- ***Backwards compatibility***: Can add new properties/methods without breaking backwards-compatibility
Copy link
Member

Choose a reason for hiding this comment

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

Perhaps worth capturing the consistency between APIs as a feature of IDL:

Suggested change
- ***Backwards compatibility***: Can add new properties/methods without breaking backwards-compatibility
- ***Backwards compatibility***: Can add new properties/methods without breaking backwards-compatibility
- ***Consistency***: New APIs, such as methods and properties, follow similar forms to existing APIs - conventions and types are heavily reused, creating familiarity interface between APIs.

@rahimabdi rahimabdi self-assigned this Oct 15, 2024
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.

Document why IDL decisions were made in the past
2 participants