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

717 Add a recommended set of user channels to the Standard #727

Merged
merged 9 commits into from
Jun 7, 2022

Conversation

kriswest
Copy link
Contributor

resolves #717

Adds a set of recommended channel definitions to the API to encourage desktop agents to use a consistent set to aid a future Desktop Agent Bridging addition.

@kriswest kriswest added enhancement New feature or request api FDC3 API Working Group Desktop Agent Bridging Desktop Agent Bridging Discussion Group labels May 20, 2022
@netlify
Copy link

netlify bot commented May 20, 2022

Deploy Preview for lambent-kulfi-cf51a7 ready!

Name Link
🔨 Latest commit 720e35a
🔍 Latest deploy log https://app.netlify.com/sites/lambent-kulfi-cf51a7/deploys/629f38dbd109eb0008fb69cb
😎 Deploy Preview https://deploy-preview-727--lambent-kulfi-cf51a7.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 settings.

@kriswest kriswest mentioned this pull request May 20, 2022
17 tasks
Copy link
Contributor

@nkolba nkolba left a comment

Choose a reason for hiding this comment

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

Not sure what a recommended set of user channels will achieve. A "SHOULD" won't guarantee consistent experience for end users and a "MUST" would be a non-starter. Also, while this is a brave stab at coming up with a standard set of channels (and I appreciate the move away from colors only), the proposal tempts a synethesiac rabbit hole of which color should be associated with what letter. I'd be in favor of tabling this and taking up again in the context of the desktop bridging discussion. A more flexible mechanism that allowed for a federated approach across bridges would make more sense and provide end users with much greater consistency and determinism.

@kriswest
Copy link
Contributor Author

kriswest commented May 23, 2022

You can find minutes for the 3 previous occasions that this has been discussed in the Desktop Agent bridging group meetings (added as references on the issue) at:

We did discuss other mechanisms for doing this. Providing a mapping system in the bridge was not a popular solution as its very hard to expose to the user what the mappings are. Likewise mapping on each end (which might prove inconsistent and more complex to administer). It will always result in a poor UX where messages on a channel with one name/appearance pop out on one with different details.

A "SHOULD" won't guarantee consistent experience for end users and a "MUST" would be a non-starter.

True, but it will at least encourage one - which no other solution proposed actually does (mapping channels to each other doesn't do that). If a MUST is a non-starter, then this appears to be the best option on the table currently.

Also, while this is a brave stab at coming up with a standard set of channels (and I appreciate the move away from colors only), the proposal tempts a synethesiac rabbit hole of which color should be associated with what letter.

For colourblind users, a purely colour-based channel set is not usable - I would assume that's why DisplayMetadata has a glyph field in the first place. Colours are also a challenge for other visually impaired users unless suitable names or glyphs that can be read are applied. It doesn't matter to me whether we use letters or numbers - do you prefer numbers for Glyphs/names @nkolba?

I hope the community is mature enough to avoid getting bogged down in a 'synethesiac rabbit hole' and to forgo accessibility for the sake of debate. To help with that, it was requested by a participant in one of the discussions that we are vague on the exact hue of each colour so teams can select their ideal red for example (hence named colours rather than hex - although in CSS those do imply a specific hex, here they are more of a guide) - however we did acknowledge that colours do need to be tied to the channel names/glyphs for consistency for sighted users.

Finally, the group discussed it being advantageous to introduce this in a major version and as soon as possible. The later we do it, the harder it will be to migrate to/agree on...

@kriswest
Copy link
Contributor Author

P.S. I just took a stab at the colours / glyphs and used the set of 6 in electron-fdc3 for inspiration (I think the colours there go through a similar progression of the hue) but expanded to 8. Happy to adjust/have it adjusted via review!

Really not sure whether letters on numbers make better Glyphs, but do think channel names should match them (for sanities sake).

Copy link
Contributor

@hughtroeger hughtroeger left a comment

Choose a reason for hiding this comment

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

I actually think this is a reasonable mapping of colors and letters, since the colors are ordered by decreasing wavelength (visible spectrum red to purple/violet). Of course brown is an outlier, I'd almost rather use black or white or just cap it at 7 and leave additional ones up to the desktop agent implementation.

@hughtroeger
Copy link
Contributor

Another thought, maybe Arabic numerals are more internationally recognized than Latin alphabet characters?

@kriswest
Copy link
Contributor Author

kriswest commented May 25, 2022

Both good points @greyseer256, I've switched to Arabic numerals and tweaked the back half of the range to: cyan, blue, magenta, purple (in the correct order in the spectrum I think), which (to my eyes at least) is easier to differentiate than before.

Heres a preview:
image

preview code

 <div style="position: fixed;top: 10px;left: 10px;"><div style="width: 25px; height: 25px; background-color: red;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">1</div><div style="width: 25px; height: 25px; background-color: orange;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">2</div><div style="width: 25px; height: 25px; background-color: yellow;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">3</div><div style="width: 25px; height: 25px; background-color: green;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">4</div><div style="width: 25px; height: 25px; background-color: cyan;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">5</div><div style="width: 25px; height: 25px; background-color: blue;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">6</div><div style="width: 25px; height: 25px; background-color: magenta;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">7</div><div style="width: 25px; height: 25px; background-color: purple;color: black;text-align: center;line-height: 25px;display: inline-block;margin-right:5px;">8</div></div>

Copy link
Contributor

@hughtroeger hughtroeger left a comment

Choose a reason for hiding this comment

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

👍

@openfin-johans
Copy link
Contributor

As mentioned on #717 I think we must add some form of "fdc3" part to the id to ensure there's no mismatch with any existing or other channels.

I think we had comments about namespacing before so not sure if fdc3.channel.1 is the way to go? Should it be fdc3_channel_1?

@kriswest
Copy link
Contributor Author

I think we had comments about namespacing before so not sure if fdc3.channel.1 is the way to go? Should it be fdc3_channel_1?

I'm not sure the namespacing discussion was related to channel names specifically - but I suggested this (with periods) for the sake of consistency with context types and intent names. However, I don't think it matters a whole lot - we can even have spaces (e.g. "fdc3 user channel 1").

I'll update the PR with the version with periods - but give me a shout if there's a strong argument for underscores or something else.

@kriswest
Copy link
Contributor Author

@kriswest kriswest added this to the 2.0 milestone May 31, 2022
@kriswest kriswest merged commit 302eb0f into master Jun 7, 2022
@kriswest kriswest deleted the 717-recommended-channels branch June 7, 2022 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api FDC3 API Working Group Desktop Agent Bridging Desktop Agent Bridging Discussion Group enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add a recommended set of user channel definitions to the API
6 participants