-
Notifications
You must be signed in to change notification settings - Fork 106
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
Feature definition guidelines #532
Comments
The main questions to resolve:
|
At the last WebDX CG meeting, I volunteered to create a shared doc to list the current discussions and questions to resolve. The idea is that, over time, this document would morph into a series of guidelines for how to create groups. |
I started unearthing relevant discussions from GitHub and moving them to this shared document: https://docs.google.com/document/d/1Y2hTj9IqgLxOXmlePKttA0muB47DCI5tkeIIevmc18M/edit?usp=sharing Please add to it if you know of others. |
Additional questions and conventions that could perhaps be worth addressing in the guidelines:
|
We need guidelines for the situation in #546. |
This is great. @captainbrosset has done a bunch of good work here. I was thinking of how to start to get this stuff formalized. I thought a template might help, something along these lines:
## Don't use foo and bar feature descriptions
Metasyntactic variables aren't very memorable. Use real examples.
Incorrect examples:
- ~~The function accepts a string ("foo") and returns a length (3).~~
Correct examples:
- The function accepts a string ("Esperanto") and returns a length (9).
Issues, PRs, and related guidelines
- #10000
- #10001 Then as we get close to consensus, we could fill in the template and open a PR for each guideline. It might also help us break up larger guidelines into smaller ones, to make the reviewing/editing work easier to do. |
As I've written a bunch of descriptions and discussed with @ddbeck in PRs, a pattern is emerging, which is "The X does Y" in the active voice. Sometimes I've added a second sentence to gesture at common uses. Descriptions I'm happy with so far:
I've been inconsistent about when "CSS" is used and would like to fix that, generally by removing it. Descriptions that don't fit this style:
Finally there's "A promise represents an asynchronous operation which eventually succeeds or fails" which is in the active voice but is just "An asynchronous operation which eventually succeeds or fails" with extra fluff. Now, discuss! |
A few observations... Repeating the name of the feature often helps make clear what it is. The description "The I'm not sure if descriptions need to make sense in isolation, or if we should assume some context in the presentation. In particular, if we can assume that all features grouped as CSS are somehow identified as such when presented, then we can be more comfortable with a description like "The In a few cases, "X is Y" seems more natural than "X does Y", and we probably shouldn't create tortured prose to fit all descriptions into the same format. The WebVTT description seems just fine to me, for example. |
I was giving some thought to the "X does Y"/"X is Y" and "Does Y" distinction. What would these look like in different contexts? For example, as part of some partly generated feature docs (e.g., like an MDN reference page where there's a title usually immediately followed by some text reiterating the title) or as a tooltip. I did a bit of poking around to see what high-profile webdev docs are doing (e.g., Tailwind, React, etc.) and a random exploration of code tooltips in my editor. The main things I learned:
As for "X does Y"/"X is Y" and "Does Y", my conclusion is that it probably doesn't actually matter. That said, I think "X does Y" has a slight edge, given two points:
|
I think this is a fair summary. Let's write down "X does Y" as our guideline, but with a big "or whatever you like" exception. I think everything will turn out reasonable just through copy-pasting existing descriptions to make new ones. |
Because I write technical documentation a fair amount of my time, I do have a few strong opinions about this:
|
@captainbrosset thank you! It sounds like the descriptions we've written so far mostly aligns with your opinions. Do you think they should be shorter in general though? |
I'd propose starting by setting an arbitrary character limit—we'll probably figure out pretty quickly if we're trying to stuff too much into the description. Maybe a tweetspan, 280 characters? |
280 works. The longest we have now is 244. |
As suggested by @ddbeck in #532 (comment)
I agree with the point that this should not be turned into technical documentation over time and a character limit seems a good way to achieve that, but I don't think the assumption above will hold (see for example https://caniuse.com/flexbox-gap where this would be a perfect fit). I don't think it changes anything about the guidelines so far, just wanted to state that for possible future guidelines. |
https://caniuse.com/flexbox-gap has a very short description, what assumptions do you have in mind there? |
That there are no docs to provide context like there is on an MDN page. |
As suggested by @ddbeck in #532 (comment)
So I guess you're saying that description is too short? Maybe we need a minimum description length too? 😆 |
No, I just linked to that random caniuse.com page to illustrate that there are places where the short descriptions will be used without any other documentation on the page, so we should keep that in mind and never assume that there will be more context for the short description. |
Ah. I agree, the descriptions should stand on their own, and only assume the short name is also shown. Most of them would work without the short name too. |
Description guidelines came up in the WebDX call today. I opened #789 to capture as much as I could of the description reviews/edits so far. |
We should have detailed guidelines and principles for how to create feature groups in https://github.com/web-platform-dx/web-features/tree/main/docs.
Known discussions:
The text was updated successfully, but these errors were encountered: