Motivation/Problem description

We need a way for companies (organizations) and their customers, to be attributed. See #2288727: [meta] Provide credit to organizations / customers who contribute to Drupal issues
Work over the life of an issue can be part individual and part sponsored. So, we need granularity per comment.

Proposed Resolution

Remaining tasks

UI & Testing

https://attribution-drupal.redesign.devdrupal.org/node/2421815

access to site:
drupal
drupal

a user:
bacon
bacon

Before screenshots

how comments will look

Screenshot

how attribution is entered

As of comment #101

Deployment

According to forum post https://www.drupal.org/news/issue-credit-attribution-interface

If feedback goes well, our Drupal.org engineering team is planning to release the comment attribution feature on March 12th.

  • Update to nodechanges 793b181 or better.
  • Merge 2340363-attribution branches for drupalorg and bluecheese.
  • Make sure Features are not overridden.
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

drumm’s picture

mgifford’s picture

Would we have to set this per comment, or could we simply set a default and vary from that? The default behavior should be no more complicated than it is right now.

joshuami’s picture

drumm’s picture

Yes, it would be available to be set per-comment. The default value should be whatever you used latest.

mgifford’s picture

That should work. Will you be able to edit it later if you want to change the attribution?

drumm’s picture

Assigned: Unassigned » drumm
drumm’s picture

Issue tags: +d.o issue workflow

  • drumm committed 63c797d on 7.x-3.x
    Issue #2340363: Export existing issue comment fields
    
drumm’s picture

The initial commit is to get the existing issue comment fields exported in a Feature.

  • drumm committed 63c797d on 2340363-attribution
    Issue #2340363: Export existing issue comment fields
    
  • drumm committed a1134b0 on 2340363-attribution
    Issue #2340363: Add issue comment attribution
    
drumm’s picture

Issue summary: View changes
drumm’s picture

Issue summary: View changes

  • drumm committed 7149dbe on 2340363-attribution
    Issue #2340363: Add customer suggestions
    
webchick’s picture

Is there a place to try this out? :)

  • drumm committed ee4526d on
    Issue #2340363: Improve suggestions when typing
    
drumm’s picture

Issue summary: View changes
Status: Active » Needs review
FileSize
141.9 KB
40.6 KB

This is now set up to be tested at https://attribution-drupal.redesign.devdrupal.org/node/2421815, and I've added screenshots to the issue summary.

drumm’s picture

Issue summary: View changes
Bojhan’s picture

Could you explain some rationale behind the design, as this clearly deviates from the earlier discussions/mockups?

drumm’s picture

I wanted to

  • avoid a modal popup - although these are modal "bubbles", they stay nearby, helping you keep context
  • show the attribution in the same general format as will be shown on the comments

And I do not think this belongs in the issue metadata area, since this data is about the comment itself, not the entire issue.

hestenet’s picture

Issue summary: View changes
FileSize
451.29 KB
joshuami’s picture

@drumm, this UI is awesome! (I can't wait to add that same edit in place functionality to the issue metadata itself.)

Based on your note above, we should be storing the credit intention on the comment and the maintainer would give out credits at issue close.

(@hestenet, thank you for the gif to help with review.)

drumm’s picture

Based on your note above, we should be storing the credit intention on the comment

These are a couple of entity reference fields in a fieldset, so they are being saved. We should have some interim help text since maintainers assigning the credit won't be done until later.

David_Rothstein’s picture

I made this point in #2288727: [meta] Provide credit to organizations / customers who contribute to Drupal issues also, but I think when you click on "Drupal Association" in the example, the resulting text should say something like "Attribute this contribution to myself, Drupal Association" rather than just "Attribute this comment to Drupal Association".

That's more accurate in terms of how the attribution is actually used (your name is always attached to the comment no matter what), plus makes more sense for people whose contributions straddle the line between volunteer and employer-sponsored; they'll be more likely to fill this out without feeling guilty one way or the other.

If this change is adopted, perhaps the UI should include a disabled checkbox (that's always checked) labeled "myself", rather than the "This is all me" option?

  • drumm committed f0c0f38 on 2340363-attribution
    Issue #2340363: Language clarification
    
drumm’s picture

Issue summary: View changes
FileSize
124.62 KB

Aha, sorry I missed that earlier.

I took a slightly different approach, rewording the UI to be a bit closer to the finished comment rendering:

Attribute this contribution: at organization not applicable for customer not applicable

The first screenshot in the issue summary is updated too. I couldn't think of a way to keep it reading as a sentence; keeping the "at" and "for" matching the comment display is more important.

David_Rothstein’s picture

I like that approach better too, but why not just do it like this:

Attribute this contribution to: drumm at organization not applicable for customer not applicable

Then you get the name in there, and make it like a sentence also.

markhalliwell’s picture

I have to agree with @Bojhan. One of the goals in #936304: [META] Style issue comments was to help minimize the shear amount of verbiage clutter in the comment stream. Having "at X for X" after each username kind of defeats the whole point of that issue. There has got to be a better way, maybe this way?

#19:

...since this data is about the comment itself

Then, let's move it to where it makes more visual sense (ignore my verbiage, that's really the least important thing to me right now).

No access to text format (most people):

Those with text format access:

markhalliwell’s picture

Also, I think the pop-up is fine for now. A modal isn't something I think we really have support for on d.o at the moment anyway and is a whole other can of worms. Once that has be thought out, we can certainly revisit making this "selection" process more verbose.

Bojhan’s picture

Do we actually have to display this at all for every user? That seems like a very silly idea, it is information that will duplicated like 20 times on a given page and adds nothing to the actual discussion. The purpose is to have a commit message that includes companies, not a comment stream that is comments from Acquia vs. Advomatic.

I like @markcarvers idea of finding a place for it. It doesn't really make sense to just paste it under something. That feels very un-designed. The reason I chose a modal is because it is a interaction model we can reuse, I doubt we can reuse a contextual pop-up like this. But it's fine to pursue that direction, usability wise it doesn't really matter.

joshuami’s picture

@Bojhan, the request from Dries and others was to be able to see the history of companies involved in an issue. I believe webchick mentioned that some of the branch maintainers were interested in being able to see conflicts of interest as well.

Is there a way we can maintain that intent and show/hide these attributions?

I prefer these attributions to show up next to the username. If someone is attributing a comment to their work for an employer or customer, then the comment is really from those organizations as much as it is from the individual. I would imagine that most comments will still be made as individuals, but we won't know that for certain until we have real data being entered.

We can always modify the layout if we see it is cluttering up the experience.

Bojhan’s picture

@joshuami I have asked webchick to chime in, I understand that there is a level of intrest. But that does not necessarily justify such an invasive feature. We can make it a toggle, but at large I am puzzled why we would want to turn the issue queue into a conflict of intrest comparison tool. I prefer a more subtle method.

davidhernandez’s picture

The default value should be whatever you used latest.

Is that what you used last on the site or in the issue? If I comment in a new issue does it default to just me and I have to set it every time?

YesCT’s picture

Issue summary: View changes

adding login info to the summary so people can try it.

markhalliwell’s picture

If someone is attributing a comment to their work for an employer or customer, then the comment is really from those organizations as much as it is from the individual.

I completely and 100% disagree with this statement.

This ties responsibility of what the user/commenter says to the companies and THAT path treads in very dangerous ground. The person making the comment should (IMO) 100% responsible for what they say. Any additional "attribution credit" should simply be meta data after the fact.

That is why I purposefully moved the organizations and companies to the bottom as "Credit"; to help further dissolve that relationship of responsibility. From what I understand, the actual goal of organization and company credit is to assist with logging attribution of contributions (i.e. patches, reviews, etc) for the repository's sake.

puzzled why we would want to turn the issue queue into a conflict of intrest comparison tool. I prefer a more subtle method.

I too was wondering that. I attempted to make it more subtle above, but really think it should just be removed entirely IMO. Perhaps a different approach/compromise would be to make it part of the tooltip when hovering the username instead? This type of information shouldn't be cluttering up the issue queue.

YesCT’s picture

Issue summary: View changes
Issue tags: +Needs accessibility review
FileSize
339.26 KB

I like that people will be able to change it by editing the comment.

It looks ok with just a customer and not an org.

I dont have a preference for the current interaction or a popup. this worked well enough for me.

----
1.
I think we should do something like @David_Rothstein suggested in #23

perhaps the UI should include a disabled checkbox (that's always checked) labeled "myself", rather than the "This is all me" option?

2.
2a. I think toggling the show attributions is a really good idea.
Maybe something on the right side bar, like where the change records automatically show
"show attributions" "hide attributions"
and it would remember the setting (like the date/time vs time ago) toggles, and it remembers.
(we could make this a follow-up if people wanted to not include it here)
OR
put the toggle in the crediting and committing fieldset. and default to hide.

2b. We should also have an "attribution summary" ...
that would be a separate page?
or
hide all parts of comments *except* attributions?
(very much should be a follow-up)

3.
I found the placement right under the meta data confusing.
3a. I think putting it under the comment text area is better.
3b. Maybe including it in a shaded area (that included the comment and attribution fields would help (like the issue summary and relationships fieldset is grouped together, has a colored area.))

4.
tabbing through with voice over on, it was not clear how to use this.
moving it after the comment might help.
adding tag for needs accessibility review

5.
also added a remaining tasks section to the issue summary
... and a motivation was missing, it was all solution. the motivation might need to be corrected.

  • drumm committed 8d93a84 on 2340363-attribution
    Issue #2340363: Use default values from last comment on the issue, then...
drumm’s picture

Re #32:

The default value should be whatever you used latest.

Is that what you used last on the site or in the issue? If I comment in a new issue does it default to just me and I have to set it every time?

It was using defaults from your last comment on any issue. I've changed that to prefer your last comment on the issue, if there is one.

  • drumm committed 32610ed on 2340363-attribution
    Issue #2340363: Add username to issue comment attribution
    
drumm’s picture

Re #26:

Then you get the name in there, and make it like a sentence also.

Good idea, done.

  • drumm committed 9da6e7f on 2340363-attribution
    Issue #2340363: Add classes for issue comment attribution
    
drumm’s picture

Re showing this on comments:

I do like the color change to de-emphasise the links. Currently, I went all the way to styling the same as the "commented" line. You can't tell they are links without hovering, but they do stay more out of the way. These links are not really what we want people to click on, so I think that might be okay.

drumm’s picture

Issue summary: View changes
FileSize
68.31 KB

Updating "how comments will look" screenshot

  • drumm committed 7185dea on 2340363-attribution
    Issue #2340363: Focus input on click, hide bubbles when something else...
drumm’s picture

I cleaned up the focus behavior to improve keyboard navigation. Now:

  • When you open a bubble, the first input is focused.
  • When you focus an input outside of a bubble, the bubbles are closed.
YesCT’s picture

Issue summary: View changes
FileSize
117.44 KB

editing a comment seems to have been broken by something recent

and... it says bacon doesn't have any orgs, and to add them on the profile. but bacon has orgs.

YesCT’s picture

ah, bacon had a current org, but that org did not have an org node.
I added bluehost to bacon and then it shows.
#2442973: On the user profile edit for "work" show if an org has an org node or not

markhalliwell’s picture

Status: Needs review » Needs work

Please read #34....

webchick’s picture

I really do think that transparency of organizations (if any) who are driving the work in the issue queue is important. For example, as a core committer, it's useful to know that the two people who reviewed/RTBCed a given patch work together at the same organization/on the same customer's project. If it's a somewhat controversial patch, it might cause me to ask for a review from a neutral third-party.

I am ambivalent as to how this data is presented, and am fine with it being more subtle.

  • drumm committed 3b91bda on 2340363-attribution
    Issue #2340363: Also alter comment edit form
    
drumm’s picture

#49 fixes #45. I had gotten by with just altering the node form, but the comment needs to be altered too, as of #38. This makes labels and other things more consistent when editing comments too.

YesCT’s picture

@drumm Thanks, that fixed #45.

YesCT’s picture

Issue summary: View changes

Disabling javascript does not have a nice fallback though.

drumm’s picture

There is a fallback for non-JS now. I wouldn't call it "nice", but it is as nice as anything else without JS.

markhalliwell’s picture

#48:
Agreed. I'm not saying it "shouldn't" be there, but having it as the very first thing associated with the user who posted the comment is not a really great idea for the reason stated in #34. Moving it down to fill the whitespace at the bottom is more appropriate IMO and it still keeps it visible for everyone.

YesCT’s picture

FileSize
82.89 KB

without javascript is much better:

both when adding a comment on the node page, and when editing a comment.

can we add the "at organization" and "for customer" context words to the form though so they show there also?

and, looking at this, I think the disabled checked checkbox that lists the username makes even more sense to include. because without it, it is not clear the user will get attribution themselves.

drumm’s picture

Re #34:

I did de-emphasise organizations by changing the color of the organization links from link blue to comment submitted grey.

I do think organizations are a part of your identity if you are attributing them, however big or small of a part. I do think we shouldn't have much visual emphasis on them, since individuals are indeed the ones actually writing the comments.

An idea that came up in IRC was to add parenthesis:

drumm (at Drupal Association for Advomatic) commented 3 days ago

If they are at the bottom, that takes up more vertical space, which I'd like to avoid. The links at the bottom of comments aren't there for everyone and #2272951: Style comment links will shuffle them away for everyone else, taking away that whitespace.

YesCT’s picture

documenting from irc conversation with @webchick and @drumm
this gets json support built in:
because we are piling fields into entities, which we are because Drupal, RestWS puts them in.

so, for a bacon comment
https://attribution-drupal.redesign.devdrupal.org/node/2421815#comment-9...
becomes
https://attribution-drupal.redesign.devdrupal.org/api-d7/comment/9651262...
and all comments on a node are
https://attribution-drupal.redesign.devdrupal.org/api-d7/comment.json?no...

via drupal.org/api

super cool.

YesCT’s picture

logged in people have a Crediting & Committing fieldset which could contain a show attribution toggle.
but @drumm pointed out in irc that anonymous people dont.
so anonymous should see all the info (and not have a toggle)

Bojhan’s picture

@webchick Thanks for chiming in. We talked a little bit over IRC, one of my arguments is the following:

By making it very "out" there we suddenly making a much stronger connection between the company and the person. Even though that connection has always been there, with this design choice we basically imply - there is a very strong connection. Even though my company might have me contribute during work hours, that doesn't necessarily mean they agree with every single statement.

You don't want the issue queue becoming a advertising board, where because 80% of the discussion is from Acquia peeps - you discount the discussion. This sentiment type discussions will get happen if you push it forward so strongly. I feel like this could significantly, negatively impact our culture - which is at large people (not companies) discussing ideas.

I would argue to have a toggle and disable it for anonymous users and registered users by default. I feel like users that are informed enough to make decisions based on company contributions in the queue, probably already taken the step to login and/or toggle. It's incredibly hard to make a decision based on company names in the queue, you have to really know the person to know how they are influenced.

Visually the attribution as described by drumm in #56 sounds fine. @mark I think having it in its own place, puts even more emphasis on it.

@drumm Do you have a latest screenshot of your implementation?

mparker17’s picture

@YesCT, as per our Google Hangout...

Here's the link to the ARIA Roles documentation: http://www.w3.org/TR/wai-aria/roles

To make VoiceOver read the whole popup box, I added role="dialog" to the popup element, i.e.:

<div class="field-type-entityreference field-name-field-attribute-contribution-to field-widget-options-buttons form-wrapper" id="edit-nodechanges-comment-field-attribute-contribution-to" style="display: none; left: 259.33251953125px;" role="dialog"> ...

It would be helpful for each popup to have an invisible title, like "Organization attribution dialog" and "Customer attribution dialog".

It would be helpful for the textbox in the Customer attribution dialog to have both a label ("Customer names") and help text to say that you can enter a comma-separated list of customers, which will autocomplete if they have an organization page.

As discussed, the Organization attribution dialog doesn't really need the "This is all me" link; someone could just unselect all the available options. Not sure what to do about the Customer attribution dialog, though, as it would be helpful for people to choose arbitrary organizations there. Maybe they could clear the textfield to get the "not applicable" thing.

drumm’s picture

FileSize
55.59 KB

The issue summary's screenshot is updated, except for the possibility of adding parentheses. That would look like

Screenshot

That might actually bring more attention to it too.

The documentation page on this should include a "be sure to talk to your employer and/or clients about how to use this for your situation" section to remind people about not breaking NDAs and how to handle any work that might be a grey area.

  • drumm committed 648f967 on 2340363-attribution
    Issue #2340363: Add role="dialog" to bubbles
    
davidhernandez’s picture

I completely agree with the sentiments being brought up by markcarver in #34 and Bojhan in #59. Please do not underestimate the affect a strong linking between a person and company can have on the way people might interact. I don't profess to know the best way to handle this, but just keep it in mind. People can feel very strongly about that relationship for themselves, and the ones they see amongst others.

The last thing I would want to see happen is new people or free-lancers feel shy about participating because their comments are not attached to a certain company or fancy client. It might sound silly, but I can easily imagine some people feeling intimidated.

I noticed that 'bacon' has Georgia Tech as a company but it doesn't show up in the list when commenting. Bug?

  • drumm committed 43c823f on 2340363-attribution
    Issue #2340363: Label cleanups for accessibility
    
drumm’s picture

Re #60:

I added role="dialog". And cleaned up the labels a bit.

help text to say that you can enter a comma-separated list of customers, which will autocomplete

I wonder if this is an issue that would be well-tackled in Entity reference module. The UI here is a fancy wrapper for regular fields.

The "This is all me" links are a shortcut to clearing either field. I thought about only showing them when there were organizations selected, but that makes the fields jump around vertically. Everything in predictable places should help people fill out these new fields a little quicker.

drumm’s picture

I noticed that 'bacon' has Georgia Tech as a company but it doesn't show up in the list when commenting. Bug?

That's #2442973: On the user profile edit for "work" show if an org has an org node or not

amateescu’s picture

I would like to echo the points being raised in #34, #59 and #63.

The last thing I would want to see happen is new people or free-lancers feel shy about participating because their comments are not attached to a certain company or fancy client. It might sound silly, but I can easily imagine some people feeling intimidated.

This is not silly at all! It's already hard (mentally) for people who are not already involved in the project/community or didn't attend a conference/code sprint beforehand to overcome the (quite natural) fear of unknown before taking the step of getting involved, so I definitely feel that seeing an issue whose participants have a " (for [insert_big_drupal_company_name_here])" suffix attached to their username will increase the level of "who am I to speak here" thoughts for newcomers.

It is useful to have this data for statistical and contribution visibility purposes, but I think the "beginner impact" aspect should be carefully planned and discussed, not rushed in.

amateescu’s picture

help text to say that you can enter a comma-separated list of customers, which will autocomplete

I wonder if this is an issue that would be well-tackled in Entity reference module. The UI here is a fancy wrapper for regular fields.

Isn't that the purpose of a field's description? :)

drumm’s picture

Well, the commas will be inserted when using the suggestion links or autocomplete. And you do really have to use either to get the (12345) and have the field validate. Field descriptions that repeat the label is a pet peeve of mine.

skyredwang’s picture

What about making this display toggle a variable in the Session/Cookies. So, it can be off as default, but for people who want to see, they can click once to enable it?

catch’s picture

I hadn't thought about #63/#67 until it was brought up, but that's a very good point. When I started using Drupal then contributing to core I was doing saxophone teaching, gigs, and temping in hospitals. Seeing a bunch of companies after people's names might well have put me off getting more actively involved in core issues.

Just listing at the end seems fine. Maybe comment admins or similar could have access to the individual attribution (with a toggle still).

Also if we're listing at the end, it would be good to explicitly include 'unsponsored' as an attribution.

mparker17’s picture

@drumm, thanks for adding role="dialog"!

***

A couple more things I forgot to mention in my previous comment...

  1. The text "This is all me" is confusing when you hear it for the first time, because it's unclear what it's talking about. A title at the top of the dialog, or removing "This is all me" in favor of unchecking all checkboxes / clearing the customer field would make it more accessible.
  2. When I select an option from either one of the dialogs in VoiceOver, the dialog immediately closes, which violates Web Content Accessibility Guideline #3.2.2 On Input: Changing the setting of any user interface component does not automatically cause a change of context unless the user has been advised of the behavior before using the component. (Level A) .
  3. When I select an option from either one of the dialogs in VoiceOver, the dialog immediately closes, and the VoiceOver cursor ends up just before the Comment label, which is really confusing, especially since I have to back-track through the "When this issue is fixed..." description before I get back to the "Attribute this contribution..." line to 1) hear the rest of the line and notice the customer attribution and 2) see the results of the changes I just made.
    If there was a way to either put the dialog HTML inside the line of text (i.e.: before or after the link you have to click to show the dialog), or re-set the screenreader-cursor so it re-reads the whole attribution line from the start after a dialog closes, that would make this more accessible.
Wim Leers’s picture

  1. Like #71, I also hadn't thought of #63/#67, but agree with them that we need to be very careful with this.
  2. I think it makes sense to make this an opt-in experience, and therefore disable it for anonymous & authenticated users by default. But then brings me to another idea: what if the attribution information would just be an optional information layer? i.e. an information overlay that you can toggle?
    Then we could have a button or a checkbox that says something like "Display attributions" and only then show the UI as implemented above.
  3. Or even better, in the future rename it to "Visualize contributions" and potentially even draw a graph on top of all comments, with a graph vertex attached to each comment, and the edge emanating from it colored for either individual, the employer or the client (you'd be able to toggle between those), so that it becomes clear. That'd be 100 times clearer/easier to understand than reading all comments to get a sense. Humans are great at handling visual relationships.
    Concrete example: something like http://bl.ocks.org/mbostock/4339083, where the left-hand side is an individual/employer/client, and the right-hand side are all the associated comments.
    We can do this using for example http://d3js.org/ or http://js.cytoscape.org/
YesCT’s picture

Issue summary: View changes

I think usually, people will only check the box for 1 or 2 orgs or customers. So we can take out the "this is all me" link. People can just uncheck.

The bit where the dialog closes after checking one (or unchecking one) is a little odd. but I guess making someone start the interaction over to check more than one (or uncheck more than one) could be ok, at least to get a first version of this in the wild.

  • drumm committed b23c5c7 on 2340363-attribution
    Issue #2340363: Add accessible context to customer suggestions
    
  • drumm committed e64b2fd on 2340363-attribution
    Issue #2340363: Remove "This is all me" links
    
drumm’s picture

I removed the "This is all me" links. The bubbles aggressively close so you can get on to what you really should be spending time on, actually commenting on the issue. For most people, with zero or one current organization, this is two clicks to change - open the bubble, check or uncheck your organization. The customers can be done in one go, if you use the keyboard a bit. Since they are both multi-select, it does get more complicated as you add organizations.

I also added some labeling to the customer suggestion links: <span class="element-invisible">Add customer </span>@title.

drumm’s picture

If there was a way to either put the dialog HTML inside the line of text (i.e.: before or after the link you have to click to show the dialog)

I was thinking this might be the way to go for version 2 of this interaction, if it makes it to other places on the site. With the current architecture, it isn't easy to do. If I started over, I'd look more at widget extension than fieldset extension.

drumm’s picture

From going over this at an Association Engineering team meeting:

Would it work to always default organization & customer to "not applicable", so over-attribution is avoided? This would make the visual attribution on comments a bit lighter.

drumm’s picture

Personally, I'd say we want to show attribution on comments because:

  • It provides immediate feedback. You can see if you forgot to set attribution on a comment right away, and can edit it. Attributions should be more accurate.
  • Transparency as webchick put well in #48.

That said, it is planned to show this in the Credit & Committing area, #2369159: Extend crediting UI to include organizations & customers. If needed, I'd rather simply not show this data on comments, and rely on Credit & Committing, rather than setting up conditions and/or a toggle to maybe show it, sometimes.

  • drumm committed 3053cf5 on 2340363-attribution
    Issue #2340363: Fix notice
    
davidhernandez’s picture

Putting it in the Credit & Committing area seems reasonable. It's in a place easily accessible by someone that wants to see, without intruding on the comments.

Wim Leers’s picture

It provides immediate feedback. You can see if you forgot to set attribution on a comment right away, and can edit it. Attributions should be more accurate.

Agreed that immediate feedback is necessary. But that's easily fixable: make sure the necessary HTML is present but let CSS hide it by default. By default, only show attribution for the current user, rather than for all users.

YesCT’s picture

I agree the immediate feedback is really nice.

--

So maybe it can show on the just saved comment until the toggle for show/hide all is hit?

I'm not sure I understand why we would not want to have a toggle to show/hide it on all comments. BUT that does seem to be blocking this. And maybe we should just roll it out showing it all the time and have a follow up for that. sooooo .... #2445305: Toggle show/hide all issue comment attributions

markhalliwell’s picture

+1000 to a combination of both #82 and #83. Having both of these in place is far more acceptable than anything previously suggested.

drumm’s picture

Issue summary: View changes

Update to nodechanges 793b181 or better is now out of the way for deploying this next week.

drumm’s picture

I added some notes to #2445305: Toggle show/hide all issue comment attributions. I can't think of a great UX to run with for toggling. There are ideas that will solve the problem, but no clear winners in my mind.

markhalliwell’s picture

Well, personally I was just in favor of #82 at first. I was just trying to be more inclusive, supportive and compromise the suggestion in #83 because there has been so much pushback on taking them out of comments.

In reality, I think if we show this in #2369159: Extend crediting UI to include organizations & customers that should be enough no? It would certainly consolidate it in one [relevant] place. The suggestion about just showing it for the current user comments is good though because then you can see which of your comments you've attributed or not so you can then proceed to edit if needed. Seeing others in the comment stream is not really necessary.

webchick’s picture

Can everyone see the "Credit & Committing" fieldset, or only maintainers of the project? If so, that would at least make it visible to all logged-in users, although anonymous users are still in the dark. I do understand the concerns being raised by amateescu and others, but I'm a bit sad that we'll end up losing the transparency which was a big bonus of this work, simply because we don't have a designer to help us figure out how to present it. :\ Oh well.

drumm’s picture

Can everyone see the "Credit & Committing" fieldset, or only maintainers of the project? If so, that would at least make it visible to all logged-in users, although anonymous users are still in the dark.

Yes, everyone (except anonymous users) have "Credit & Committing". It is expanded by default for maintainers, and the sticky fieldsets toggling takes over.

webchick’s picture

Ok, well I guess that's a decent compromise then. We could always do a round 2 at some point in the future where this info is visible to everyone (a sidebar block perhaps).

drumm’s picture

The tricky thing about this is that when we dedicate space to it, we're kinda bringing more attention to it with another thing to look at. Without removing their display from comments, I'm not sure how we can display attributions any more subtly.

An example of how per-comment transparency can be good - while not designed for this, the various Working Groups are free to use comment attribution to speak more-officially.

Bojhan’s picture

@webchick I see at least two designers in this thread. So I don't understand this. Our concern is not a design question, you can't design away a binary aspect (display or don't display).

@drumm Where can we see the latest version?

I think that what WimLeers is suggesting might actually work very intuitively. You show it for your own comments "By default, only show attribution for the current user, rather than for all users." - to learn about its existence. Another idea to placing it in credit and committing (although I think that is a natural place. Is placing a small > after your own attribution in the comment of yourself (per Wim's idea) - that drops into the contextual pop-up that shows "Showing just me", "Show everyones attributions".

Overall the compromise is just different views on the impact on our culture around discussions. Given the significance to our way of working, I think being cautious is a good first step - we can always deviate from it as we learn more how people perceive and use this in discussions.

drumm’s picture

Where can we see the latest version?

The issue summary is up to date. As a reminder:

Screenshot

drumm’s picture

@bojhan, to make sure I understand correctly, is this an accurate way to state #92?

  • The options would be along the lines of "Show my attributions on comments" / "Show everyone’s attributions on comments"
  • The default is "Show my attributions on comments"
  • The options would be in the Credit & Committing fieldset? Or a contextual pop-up on your attribution itself?

  • drumm committed e2cd245 on 2340363-attribution
    Issue #2340363: Use current comment author when editing someone else's...
tvn’s picture

I want to expand on #78:

Would it work to always default organization & customer to "not applicable"?

The idea is that by defaulting attribution to individual only, when attribution is indeed made, it is intentional step. It will more likely to happen only on comments, which include significant contribution (e.g. patch, UI mockup, patch review), where it is worth highlighting that 'I spent time on this and time was sponsored by X'. Such comments take up only a part of comment stream, thus there will be less visual clutter. Since the number of comments with attribution will be smaller, we could just display attribution on all comments as originally planned, providing the transparency webchick and others were talking about.

I think this might also help address some of the concerns around creating too strong ties between individual's comments and companies, as well as with having company name on every comment. Most of the comments (discussions, issue triage, quick opinions or ideas) will still be by individuals with no attribution. While *some* of the comments will have attribution to a company, which is fine.

It does make it a little hard to give attribution, because that's when you actually will have to make a couple of clicks. But potentially it'll help to have attribution where it actually makes sense, versus on every single comment. Later on we could add some triggers to encourage people to attribute stuff, e.g. on file upload show a message "you just uploaded patch file, would you like to attribute your work to someone?"

We could launch with default to individual always and no fancy display toggles, watch for a bit how the feature is actually being used and how it affects issue page display, and then do whatever modifications to improve it - add toggles, change defaults, etc.

Thoughts?

webchick’s picture

I don't really understand that proposal. Whatever was entered into the credit box in the last comment you did should be the default. Even if all I do is change an issue status, I'm making a contribution, and my company is sponsoring my time. (If that's the only thing I do in an issue, I'm unlikely to get commit credit for this, and that's fine.)

That proposed behaviour would codify an edge case. Because almost always, when people who are not hobbyists are doing a series of comments/patches in a row, it's for the same company/customer. And anyone who's employed by a Drupal company will generally want to attribute anything they do during working hours to that company. If you annoyed me with a pop-up each of the 20+ comments I leave a day, I would flip a table. :P

Apart from the annoyance factor, though, I also don't see how that approach addresses the concerns of Bojhan and others. Their concern is the credit information being shown on comments possibly a) at all, and definitely b) in too close of visual proximity to the username. It's not the quantity of attributions that's the problem, it's the behaviour that exposing these attributions could have on the discussions themselves that matters, as far as I can tell.

tvn’s picture

Well, here is an example random core issue: https://www.drupal.org/node/2381217
(Related, do we also give attribution for issue opening?)

I do not think that comments # 1, 2, 3, 4, 5, 6, 8, 9, 11.. should have any attribution at all. If we want *all* of them to have an attribution, then I would definitely agree it should not be displayed (at the very least by default), and should be summarized in e.g. Credit & committing fieldset and/or potentially sidebar.

Comments like #7, 13, 33, 46, 59 should have an attribution, and I'd want to see it all the time (without potentially having to see it on all those comments above).

In other words, this is an attempt to show attribution on relevant comments only, versus 'all or nothing'. If such a thing as 'relevant' comment exists :)

davidhernandez’s picture

...when people who are not hobbyists are doing a series of comments/patches in a row, it's for the same company/customer

Assuming they are doing it on company time. I'm sure a large segment of the community are professional developers who contribute in their spare time (who wouldn't consider themselves "hobbyists",) and would not attribute their contributions to their employer.

YesCT’s picture

[this comment has been edited]
We need to separate out the idea of *comment* attribution from *commit credit*.

I think the default values for comment attribution should be whatever the person last used. When they context switch from non-attributed work to attributed work (as time passes or they switch between issues), then they do the extra clicks.

I do *NOT* think that only certain comments are "worth" attributing. And I dont think we should build that idea into the software.

How we give credit in a commit message is a separate issue. We could decide to only mention organizations and customers who were attributed to on comments that included patches, with ability to add more (like we do now for individuals)... or come up with a different way of picking those out. But that is a separate issue that would make changes to the commit message part of an issue, not the recording of attributions.

YesCT’s picture

Issue summary: View changes
FileSize
2.23 MB

adding a gif of current dev site.
(to make gif, followed recommendation on http://www.mediacurrent.com/blog/animated-gifs-real-work for http://www.cockos.com/licecap/ )

YesCT’s picture

Issue summary: View changes

I'm not sure if we want one more look from @mparker17 about accessibility... or I could try...
Updated issue summary resolution and remaining tasks to be more accurate, and link off to other (follow-up) issues.

YesCT’s picture

Issue summary: View changes

added to summary note about possible deployment planned for March 12.

markhalliwell’s picture

Issue summary: View changes
FileSize
15.51 KB
16.77 KB

Yes, I agree with #97. The fact that it makes too strong of a connection/relationship between the individual user and their company is one of the points that has been raised. Just because a company sponsors a developer's time to contribute to a discussion/patch, doesn't mean that necessary endorse what that individual actually said.

Also, given the example in #101, there is another thing to consider (visually) that makes putting these attributions on this line a nightmare (for UI/UIX people)... line wrapping:

I don't know how much I can stress that this is not the place for these. It's bad enough that the other two varying length elements (username and date/time) are on that line, but now we're proposing to introduce yet another one? There is only so much pixels that can be utilize before it becomes ridiculous. The power of whitespace is important here. It was purposefully left this way to offer yet another way to help visually identify a break in between comments and allow the necessary attention to the permalinks. Just because we "have" whitespace there doesn't mean we have to fill it:

I also agree that the "default" settings should be the last attribution you selected. @webchick is right, many of us are commenting through out the day on company sponsored time, having to "select" this each and every time would actually make me less likely to attribute because it's such a hassle. How many times do we already forget to change something in the issue metadata because there's already too much to click and have to "go back" to fix it. Yes, we can technically edit the comments, but this kind of workflow would indeed want to make me flip a table too... or at least bang my head on the desk very frequently.

We shouldn't introduce something that has the potential to cause some serious damage (on many fronts) to the issues raised in previous comments. I too didn't think about the beginner aspect at first, but this is something that shouldn't be taken lightly. We cannot afford to isolate new users in shying away from contributions because it's "just their name" and there is no organization or company associated with them. Comments are made by the individuals in our community, not by the organizations/companies.

This issue so far is a far cry from "just giving attribution/commit credit to them" it's, in-your-face, public endorsement.

March 12 is a lofty goal. I hope these last remaining issues are addressed before then, however this entire issue is very close to being ready. Thank you @drumm! You've put a lot of work into this! I know I probably don't say that enough, but you've done some pretty amazing work! I honestly can't wait until this becomes live. I just think we really have to take these last little things seriously before even thinking of deploying.

mparker17’s picture

As requested in #102, I've again tried to use the issue comment attribution widget with VoiceOver.

Note that, in my comments below, I will use the words Perceivable, Operable, Understandable, and Robust as defined in the Web Content Accessibility Guidelines (WCAG) version 2.0, and link them to the relevant section of the WCAG standard.

***

I hear:

Attribute this contribution: bacon at organization internal, link, not applicable, for customer internal, link, not applicable. When this issue is fixed, the project maintainer may assign credit with your attribution. Double-quote. Internal, link, Learn more.

This is fine. The double-quote read out at the end appears to come from the fact that there is a double-quote in the HTML(?)

***

When I click on the first "not applicable" link, I hear:

Attribute at organization, Add organizations on your user profile, link, dot, dialog, Lullabot, unchecked, checkbox.

My comments:

  • This dialog needs a title (e.g.: "Employer attribution dialog"), and possibly even instructions in a visually-hidden (i.e.: visible to screenreaders but not sighted users) div inside the dialog (e.g.: "Check one or more of your current organizations below to attribute this comment to them. The dialog will close when you make a selection."). Otherwise, the purpose of the dialog is not clear (not Understandable).
  • It's good that the checkbox widget has a title ("Attribute at organization"), but I think that "Attribute at organization" could be re-worded in a way that makes it clear what the user will do when they check off the items (not Understandable).
  • The screenreader does not read the first checkbox, "Bluehost" unless I manually move my cursor backwards (not Operable).
    • When I changed the bacon user so it was part of only one organization, it did read the only item in the list. This suggests that only the last organization is read out (not Operable).
    • When I changed the bacon user so it was part of zero organizations, nothing in the dialog was read and VoiceOver stops reading (i.e.: I do not even hear the description text about needing to add organizations on my user profile). Manually moving the cursor backwards reads "bacon at organization", and manually moving the cursor forwards reads "for customer". I get to the help text in the dialog eventually (before moving to the Comment label), but at that point, it's not clear what the text is referring to (not Operable or Understandable).
  • It is unclear how to close the dialog box, especially if it's not what I wanted to do (sighted users can click outside the dialog box, but screenreader users cannot — not Operable).
  • When I check a checkbox, the dialog closes and VoiceOver stops reading. If I manually move my cursor backwards or forwards at this point, I get to the "Learn more" link or the Comments textarea label respectively. This is not ideal, as I've lost my place (not Operable or Understandable).

... also worth noting is that the bacon user, whom I was using to test, was a current member of the "Georgia Tech Professional Education" organization, but it does not show up in this box.

***

When I click on the second "not applicable" link, I hear:

Add customer Acquia, link, Add customer OpenConcept Consulting Inc., link, dialog, Attribute for customer, edit text application, 2 items.

My comments:

  • This dialog needs a title (e.g.: "Customer attribution dialog"), and possibly even instructions in a visually-hidden (i.e.: visible to screenreaders but not sighted users) div inside the dialog (e.g.: "Click a customer link below to attribute this comment to them. If you don't see the customer you are looking for, enter their name in the text box below the links. The dialog will close when you click a link."). Otherwise, the purpose of the dialog is not clear (not Understandable).
  • The visually-hidden "Add customer" text at the beginning of the link is good; but, in the dialog's current state, it is not clear what the customer is being added to. This could be resolved with a dialog title and/or instructions.
  • The "attribute for customer" label for the textbox is good, but it could be re-worded in a way that makes it clear what the user is supposed to type in the textbox (not Understandable).
  • The "New customers need an organization page" description is not read out (not Operable or Understandable). I think it would be a handy instruction to put at the top of this dialog (i.e.: not attached to the textbox) because it applies to all users (sighted or not) before they touch anything in the dialog).
  • It is unclear how to close the dialog box, especially if it's not what I wanted to do (sighted users can click outside the dialog box, but screenreader users cannot — not Operable or Understandable).
mparker17’s picture

It might be possible to solve the problems in the Employer attribution dialog where...

  • only the last organization read out, and,
  • the help text is not read out at all when the user is part of zero organizations

... by either making the items focusable using the tabindex attribute, or using JavaScript to place keyboard focus on the dialog div.

Bojhan’s picture

FileSize
61.54 KB

I spend some time talking to mark carver and we did a bit of brainstorming. What about showing it in a pop-up and just having an attribution icon. Its less prominent but still there. It at least tackles the A) prominence concern, B) spacing issues its bound to create.

attribution showing in a popup on an icon called A

markhalliwell’s picture

Oh :) That looks a lot better than I had imagined! Yes, @Bojhan and I discussed it, but it's nice to actually see it visualized :)

This certainly addresses the concerns I've had. "User (A)" (or whatever, could be an icon) is far more acceptable.

I get that some of you don't see how this could be an issue, but from someone who used to work at a local government organization... you'd be surprised at the lengths some people will go to "link" something together to advance or save their careers (I have experienced this first hand and it's not fun).

I wasn't trying to advocate that we remove this information at all really, just the potential harm it could do. We cannot not have "User at X for X", this simply carries too much weight. There must be some sort of visual break between user and attributions, that's all.

By doing this, despite whatever the comment is, we are stating that it is the contribution (review, idea, patch... whatever else really) is what the attribution is tied to, not the entire comment.

This pop-up is actually perfect I think. It actually forces whomever is viewing it to make the choice to see the attribution credit and make whatever association they want. It wasn't predetermined by lumping it all together, thus absolving the user who posted the comment in the first place.

I still think the pop-up/tooltip (could be hover or click, no preference) should be prefixed with "Attribution credit: X for X" or whatever though, to clearly state what this meta information is intended for: attribution credit, nothing more.

markhalliwell’s picture

I think this addresses the "beginner" concern as well. As I stated above, the user has to make a choice to see it's not immediately "in their face". Instead they see that all we're trying to do is give companies contribution credit, not say "the reason this comment is important is because of X organization or company".

davidhernandez’s picture

I'm fine with the pop-up. It's where I assumed we'd end up, and didn't realize it wasn't mentioned earlier. Something available to those who want/need it, but not in everyone's face.

I also prefer Mark's idea having a label like "Attribution credit: ". It better conveys the spirit of this change, which is to give credit to supporting organization, not solidifying, publicizing, or glorifying employment status and relationships. Hopefully, that will keep everyone on equal level.

joshuami’s picture

How about just "attribution" as the label? The credit comes when the maintainer awards credit as part of closing the issue. The step with maintainers is what effectively prevents the system from being gamed.

webchick’s picture

Something like #107 with a full English word like "Attribution" or "Credit" is fine with me. Thanks for working more on that.

YesCT’s picture

Yep, me too, as long as the data is in the html source and the json. (Although, personally I would eventually like a way to display them all at once when I want to; that can come later in #2445305: Toggle show/hide all issue comment attributions)

Bojhan’s picture

I would go for "credit" the shorter the better or an icon. And everyone should have one

markhalliwell’s picture

I kind of agree with #111:

How about just "attribution" as the label? The credit comes when the maintainer awards credit as part of closing the issue.

This label (prefix) would be inside the popup/tooltip, not next to (A) or the icon.

YesCT’s picture

I think attribution is better. (or another word that is not credit.)
Credit is something decided on commit (at the moment) and means something different (to at least some of us).

drumm’s picture

I'll work on #107. For the label, how about "at", "for", or "at for". It isn't exactly English that makes sense right away, but it does directly correspond to the information.

On spacing issues: we already have line wrapping on mobile. We certainly shouldn't overload things, but we're already past the point of it never wrapping.

Bojhan’s picture

@YesCT that makes sense :)

drumm’s picture

Issue summary: View changes
FileSize
34.63 KB

Here's #107 with my idea from #117. Still needs a little positioning work for mobile sizes.

Screenshot

  • drumm committed c3a2df3 on 2340363-attribution
    Issue #2340363: Change issue comment attribution to display on click
    

  • drumm committed bb1ac3e on 2340363-attribution
    Issue #2340363: Focus the attribution bubbles, instead of their form...
drumm’s picture

Re #105/6:

either making the items focusable using the tabindex attribute, or using JavaScript to place keyboard focus on the dialog div.

Both are done. Placing the keyboard focus required the tab index attribute.

  • drumm committed 0e21bca on 2340363-attribution
    Issue #2340363: Add accessible close buttons
    
  • drumm committed d23966c on 2340363-attribution
    Issue #2340363: More-specific attribution field labels
    
drumm’s picture

It is unclear how to close the dialog box

I added close buttons with class="element-invisible".

And I've tried to clarify the hidden form item labels, they are now "Attribute comment at organization" and "Attribute comment for customer". Since these bubbles are for single form items, I think another title would be redundant.

  • drumm committed 41cfa73 on 2340363-attribution
    Issue #2340363: If an element in the bubble was the target, return focus...
drumm’s picture

When I check a checkbox, the dialog closes and VoiceOver stops reading. If I manually move my cursor backwards or forwards at this point, I get to the "Learn more" link or the Comments textarea label respectively. This is not ideal, as I've lost my place

Focus now returns the the summary of the element, the links to currently-selected organizations.

  • drumm committed e6922f9 on 2340363-attribution
    Issue #2340363: Move "New customers need an organization page" above the...
drumm’s picture

Status: Needs work » Needs review

The "New customers need an organization page" description is not read out (not Operable or Understandable). I think it would be a handy instruction to put at the top of this dialog (i.e.: not attached to the textbox) because it applies to all users (sighted or not) before they touch anything in the dialog).

Done.

I think that covers most of the feedback, setting to Needs review.

tvn’s picture

FileSize
50.11 KB
124.34 KB

I think these labels are a bit confusing, especially since there are 3 different variations.

What about 'ATTR' as a short for 'attribution'? It is short, and will be the same on all the comments.
Having 'attribution' as a full word on every comment is a little too much I think.

Some other options:

mparker17’s picture

@drumm, thank you very much for addressing the accessibility barriers! The control is much easier to use with a screenreader now! Great work!

***

The control (before clicking anything) sounds the same as in #105.

***

When I click on the first "Not applicable" link, I hear:

Attribute comment at organization, Add organizations on your user profile, link . , Close Attribute comment at organization, dialog.

After a pause, I hear:

2 items Interact with Attribute comment at organization, group, with 2 items.

... interacting with the group (command-option-shift-down arrow) lets me see both the BlueHost and Lullabot checkboxes and I can check and uncheck them without difficulty.

My comments:

  • The "Attribute comment at organization" makes a bit more sense. I think this is sufficient now: I don't think a title is needed.
  • There is a Close button in the dialog, which works! Awesome!
  • Closing the dialog by checking a checkbox or clicking the button returns focus to the link that I clicked on to open the dialog and re-reads it, so I don't lose my place. Nice!
  • It's not immediately obvious that the group of checkboxes are there (I have to wait until after the pause), but I can't think of a way to fix that (explicitly setting focus on anything deeper would steal that focus from the other things in the dialog), so I think we can leave it the way it is.

... overall, I think all my accessibility concerns have been addressed.

***

When I click on the second "not applicable" link, I hear:

Add customer Acquia, internal, link, Add customer OpenConcept Consulting Inc., internal, link, New customers need an organization page, link, . , dialog

If I manually move the cursor through the dialog, I see the text field:

application, 2 items, Attribute comment for customer

... interacting with the application (command-option-shift-down arrow) allows me to type in the box, and it announces autocomplete suggestions properly.

If I manually move the cursor further, I see the close button:

Close Attribute comment for customer, button

My comments:

  • There is still no title for this box.
  • There is a Close button in the dialog, which works! Awesome!
  • Closing the dialog by checking a checkbox or clicking the button returns focus to the link that I clicked on to open the dialog and re-reads it, so I don't lose my place. Nice!
  • The "Attribute comment for customer" label makes more sense. I don't know why it reads it after the application, but that may be just a quirk in VoiceOver. I can't think of a way to fix that, so I think we can leave it the way it is.
  • It's not immediately obvious that the textfield or close buttons are there (I have to move the cursor), but I can't think of a way to fix that (explicitly setting focus on anything deeper would steal that focus from the other things in the dialog), so I think we can leave it the way it is.

... overall, I'd really like a title for this dialog, but other than that, all my accessibility concerns have been addressed.

***

There is now a control for the attribution on a comment.

For the comment https://attribution-drupal.redesign.devdrupal.org/node/2421815#comment-9... (i.e.: #8), it sounds like:

link, drumm AT FOR commented 16 days ago

My comments:

  • The "AT FOR" doesn't make any sense in context (not Understandable).
  • The screenreader does not indicate that the words "AT FOR" can be interacted with in any way (not Perceivable or Operable).

I see a couple of ways to fix this problem:

  1. Make it work like the dialogs in the attribution control (i.e.: use an a-tag instead of a span).
  2. Use something other than style="display: none;" to hide the dialog when it's not supposed to be visible to sighted users: see the handbook page on hiding content properly for more information. You may also want to hide certain text from screenreaders to make it less confusing (there's a section on that at the bottom of the handbook page).
webchick’s picture

Yes, whatever the indicator is should be the same throughout, for all users, including those who are not sponsored by anyone. That's why I liked "Credit" because a) it's visually small, b) it's short for "this is to whom credit should be attributed" #116 had reasons against that, but not sure anyone else did.

markhalliwell’s picture

Status: Needs review » Needs work
FileSize
37.27 KB
22.61 KB

Re: comment attribution display
I couldn't get the pop-up's to work, not by hovering or clicking. I noticed in the DOM that something was happening when clicking, but it always ultimately remained "display: none".

The "at for" as a label doesn't make sense whatsoever. Going off my original suggestion of using an icon, I've created a mockup. I've also changed some of the styling for the pop-up to make it look better. I'm posting here, since there doesn't seem to be a related bluecheese issue:

.comment .submitted .attribution-label {
  border-radius: 3px;
  cursor: pointer;
  font-style: normal;
  position: relative;
}
.comment .submitted .attribution {
  background: #f6f6f2;
  border-radius: 3px;
  border: 1px solid #d8d8d8;
  box-shadow: 0 2px 5px #bfbfba;
  box-shadow: 0 2px 5px rgba(0,0,0,.15);
  display: none;
  font-size: 11px;
  font-style: normal;
  padding: 0.3em 0.5em;
  position: absolute;
  top: 1.7em;
  white-space: pre;
  z-index: 1;
}
.comment .submitted .attribution:after, .comment .submitted .attribution:before {
  border: solid transparent;
  bottom: 100%;
  content: " ";
  left: 63px;
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}

.comment .submitted .attribution:after {
	border-bottom-color: #f6f6f2;
	border-width: 5px;
	margin-left: -5px;
}
.comment .submitted .attribution:before {
	border-bottom-color: #d8d8d8;
	border-width: 7px;
	margin-left: -7px;
}

Re: add new comment attribution

  1. There is a nasty side effect for those of who can see it when it's focused. This can be avoided by applying :focus { outline: 0 } on whatever element is getting focused:
  2. Clicking anywhere in the pop-up closes it, there should be a click event bound directly to the pop-up that implements e.stopPropagation()
  3. The pop-up styling should pull the similar styling from above (might even want to make it a more generic class, I can see this being used more in the future)
drumm’s picture

I'd really like a title for this dialog, but other than that, all my accessibility concerns have been addressed.

Added.

  • drumm committed aec55cc on 2340363-attribution
    Issue #2340363: Add 'Attribute comment for customer' title
    

  • drumm committed 605285b on 2340363-attribution
    Issue #2340363: Improve accessibility of comment attribution display
    
drumm’s picture

The "AT FOR" doesn't make any sense in context

That's why I liked "Credit" because a) it's visually small, b) it's short for "this is to whom credit should be attributed"

It is Credit now. (I've been trying to stick to "Attribution" in this issue, and "Credit" when assigned by the maintainer. In reality, I think people will end up using the words interchangeably.)

drumm’s picture

Use something other than style="display: none;" to hide the dialog when it's not supposed to be visible to sighted users

I went with this approach because the elements are nested for relative positioning without JS, and contain links to the organizations. a tags can't be nested. Now the element-invisible class is toggled.

  • drumm committed e92eb3e on 2340363-attribution
    Issue #2340363: Show "Credit" on all issue comments
    
drumm’s picture

for all users, including those who are not sponsored by anyone

Done.

drumm’s picture

There is a nasty side effect for those of who can see it when it's focused.

Usually we want to keep the outlines for accessibility, but I suppose we can rely on the visibility of the dialog here. I'll add outline: 0 for those elements.

drumm’s picture

Status: Needs work » Needs review

And I've used a lot of the CSS changes in #132. Notably, there is now a border for the bubbles.

For an icon, we would need a properly-licensed SVG icon that we all agree represents the concept of credit or attribution. Let's save that for a future revision.

drumm’s picture

Issue summary: View changes
FileSize
24.5 KB

Screenshot:

Screenshot

markhalliwell’s picture

FWIW, I used https://www.iconfinder.com/icons/309041/group_people_users_icon#size=128 which is Creative Commons (Attribution 3.0 Unported) licensed.

I still cannot open the attributions in the comments. I click it, but nothing happens.

markhalliwell’s picture

FileSize
22.4 KB

And I think it should be discussed now instead of deploying something that isn't quite right. An icon is less intrusive and is symbolic of what it is representing "organizations/customers". Also, it doesn't make a lot of sense when reading all the grey text together:

"Who's Credit?" is what some will likely ask. When people see a new icon for something they're more inclined to inspect it and then create an association of their own with the symbol. Any kind of word here really will likely not work and/or have disagreements about what it should be. I was just trying to avoid that by giving an alternative and commonly used method we use in the the UX world. Icons... they're small but still very powerful :)

webchick’s picture

I really like the idea of exploring icons for this (another option is combining imagery from Dries's keynote with Neil's idea of conditionals), but I don't support doing this exploration in a 150-reply issue. For now, we should deploy the simplest thing that can possibly work, and gather some real-world data on how people use this feature and what (if anything) confuses people about it. Icons are an easy enhancement on top of this feature as a second step, but will balloon this to another 50+ replies and several weeks if we try and tackle it here.

webchick’s picture

Spun off #2450741: Explore the use of icons for showing attribution info in issue queues for that, which includes both of the ideas in this thread so far.

David_Rothstein’s picture

Status: Needs review » Needs work

"drumm Credit commented a day ago" didn't make much sense to me when I tried this out. At first it's just confusing; after that my first instinct was that "credit" was a verb (i.e. that I'd click on it only if I wanted to credit the person, whatever that means).

An icon seems like the best way to make this usable, but if not that, then perhaps something small and non-obtrusive that's like an icon (for example, a *) would be the way to go?

The wording is currently using a mix of "Credit" and "Attribution"... Should probably pick one and use it consistently.

I still cannot open the attributions in the comments. I click it, but nothing happens.

On Firefox it's not working at all for me either. Seems to work OK on Chrome, though.

markhalliwell’s picture

FileSize
260.66 KB

Chrome:

David_Rothstein’s picture

That proposed behaviour [always default organization & customer to "not applicable"] would codify an edge case. Because almost always, when people who are not hobbyists are doing a series of comments/patches in a row, it's for the same company/customer.

I don't think it's so clear cut. The following workflow is also very common:

  1. Developer posts a patch to fix an issue for a client.
  2. Three months later, the module maintainer looks at it, leaves a review, and marks it "needs work".
  3. If the original developer comes back and follows up, it's almost always out of the goodness of their heart. Pretty unlikely that the client (or employer) is sponsoring that kind of followup work.

So really there is no great default behavior here. The safer bet would certainly be to always default to "not applicable", though I can see that getting very annoying for someone who is doing a bunch of comments in a row :) Defaulting to the previous values seems OK as long as it's very obvious (when you're filling out the comment) what the default values are. It was relatively obvious to me, but I knew to look for it; I'm not sure how noticeable it is in general.

davidhernandez’s picture

Would it work better after the post date, and limit the confusion reading the line? I think it ended up there when it wasn't a popup and the username was being read inline with the attribution.

tvn’s picture

Credit is somewhat overused word and I don't think it makes sense in this UI on comments. There are multiple ways to misinterpret it, it reads as 'credit commented 2 days ago', it also looks as an action word, click this to credit the person (whatever that might mean).

FWIW I don't think any proper English word would make sense here, as it'll be always read and make no sense with the words next to it. Any sort of symbol would be better. While discussion about icons was rightfully moved to a separate issue for not to slow deployment of this, we could use some abbreviation or symbol which is not the word and not an icon for now. With the understanding that it'll be replaced by an icon later. #129 has some possible things to use.

(For the record, attribution pop up does work for me in both Firefox and Chrome on Mac.)

tvn’s picture

  1. Developer posts a patch to fix an issue for a client.
  2. Three months later, the module maintainer looks at it, leaves a review, and marks it "needs work".
  3. If the original developer comes back and follows up, it's almost always out of the goodness of their heart. Pretty unlikely that the client (or employer) is sponsoring that kind of followup work.

So really there is no great default behavior here. The safer bet would certainly be to always default to "not applicable", though I can see that getting very annoying for someone who is doing a bunch of comments in a row

What if we default to what was used last in the previous say 24 hours and if nothing was used, we default to 'not applicable'?

Wim Leers’s picture

Would it work better after the post date, and limit the confusion reading the line? I think it ended up there when it wasn't a popup and the username was being read inline with the attribution.

+1

What if we default to what was used last in the previous say 24 hours and if nothing was used, we default to 'not applicable'?

+1

localStorage FTW.

You can then even easily make this configurable: add a "remember" checkbox. If not checked, then nothing is remembered. If checked, it's stored in localStorage and prepopulated from there.
A wonderful implication of doing it this way: work attribution on your work computer, private attribution on your private computer.

joshuami’s picture

It looks like we have enough consensus to launch and start seeing how this works in real use. We will deploy this later today.

Also, please keep up the ideas and contributions in the issue on icon use: #2450741: Explore the use of icons for showing attribution info in issue queues

markhalliwell’s picture

"enough consensus"?? From whom, those who are trying to push this through? There are people here who are actually giving you (valuable and valid) feedback for what needs to be fixed before it should really proceed. I'm sorry, but this "push first, fix later" mentality is what got us in trouble with a lot of the D7 upgrade.

Just because this was "scheduled" to be deployed today doesn't mean it has to be forced through... schedules change, especially when it's not ready (as evidence by CNW status).

Two major blockers for deployment:

  1. I still cannot open the pop-ups on the comments themselves.
  2. Credit needs to be changed to (A) or (*) or something (#151). I'm fine with the icon bit being pushed to a later issue, but this has to be addressed first. Words carry weight in UX.
markhalliwell’s picture

There's also a 3rd blocker: default values. This also needs to be addressed. I like the idea in #152 and yes, agree with @Wim Leers that localStorage is likely the best place to store this. That's what we're doing with the "remembered" fieldset states.

markhalliwell’s picture

I'm not sure, but I think this is the reason why it's inconsistent with showing the pop-ups. FWIW, this JS really needs proper delegation support, but that would require us to update to a minimum of jQuery 1.7. Yes, we could use $.delegate in 1.4.2, but... that has never really turned out well from my experience.

edit: Also, global binds should never be in Drupal.behaviors attach methods as they have the potential to accidentally "double-bind" and be executed multiple times (which is also probably part of this problem).

joshuami’s picture

@markcarver, I agree that words carry weight in the user experience, and I do think there is time after deployment and collecting some actual usage analytics to iterate on the wording—or better adding iconography—in order to make the feature better.

We are in a very different state that when the Drupal 7 upgrade project was in progress. We have more ability to quickly respond to change and more dedicated time to Drupal.org improvements. When I posted the request for feedback on March 2nd, it was to get a wider round of feedback after more than 6 months of discussion. I included the time box that we were planning to release the first iteration on March 12th. Solid time boxes are part of the way we are trying to change the pace of development on Drupal.org.

Launching a really good first iteration on time does not mean we will stop working to make the experience better.

@Wim Leers, @drumm will follow up with some possible alternatives for how we handle defaults. There are a lot of possibilities, but most of them are not simple.

drumm’s picture

For the defaults, localStorage is not actually a good place to store them.

Within a single issue that you have commented on before, the default is what you used on your last comment in that issue. Switching attribution within an issue should be less common (unless you are doing something like explicitly stating a personal opinion, you should attention to everything, or changed jobs and are doing the same work.)

Otherwise, the default is the last thing you used. I think for many people, this will either always be the same, or switch to/from work mode. I think the defaults disappearing after an arbitrary amount of time would make it a less-consistent UI.

We wouldn't want to put the defaults for each issue in localStorage, that would get filled up. Querying the DB is a good way to do this.

drumm’s picture

#157 - toggle is used so you can click the label to look at attribution, and click without moving to close it. Good point on the global binds.

drumm’s picture

I did a bit of browser testing, everything looks working well as far as I can tell in Safari, Firefox, and Chrome on OS X. And even IE 11 doesn't have problems.

markhalliwell’s picture

Yes, the problem is double global binding (so it's executed twice). I loaded the test issue (logged out) and it works just fine. I finally figured out why it's not working while logged in, Dreditor attaches behaviors to the DOM. So this behavior is in fact getting called twice and thus binding twice. So when it's clicked it toggles it once, and then yet again.

markhalliwell’s picture

FileSize
1.75 KB

  • drumm committed 383aa10 on 2340363-attribution authored by markcarver
    Issue #2340363 by markcarver: Move global binding out of attach
    
drumm’s picture

Our version of jQuery (stock D7) doesn't support binding to multiple events at a time. Broke those back out and it looks like it is working well.

drumm’s picture

Status: Needs work » Reviewed & tested by the community

The other global binding for the comment form is inside a .once(), and works okay on rebinding. (Changing the project on an issue form is a good way to trigger new HTML content.)

There is one little blocker left. I'm going to write a brief documentation page.

markhalliwell’s picture

Yay! Tis working now. Ok, I'll stop nitpicking being persistent with the other details and leave it up to sub-issues, RTBC++. FWIW, I did create #2451277: [meta] Implement jquery_update on d.o because we shouldn't have to maintain duplicate code (/me now remembers why he hates jQuery 1.4.2 so much).

drumm’s picture

Documentation: https://www.drupal.org/node/2451283. hestenet will be doing some work to make it less dry than my writing. Be sure to refresh before editing and not take too long, to avoid stepping on each other's edits.

  • drumm committed 0e21bca on 7.x-3.x, dev
    Issue #2340363: Add accessible close buttons
    
  • drumm committed 3053cf5 on 7.x-3.x, dev
    Issue #2340363: Fix notice
    
  • drumm committed 32610ed on 7.x-3.x, dev
    Issue #2340363: Add username to issue comment attribution
    
  • drumm committed 383aa10 on 7.x-3.x, dev authored by markcarver
    Issue #2340363 by markcarver: Move global binding out of attach
    
  • drumm committed 3b91bda on 7.x-3.x, dev
    Issue #2340363: Also alter comment edit form
    
  • drumm committed 41cfa73 on 7.x-3.x, dev
    Issue #2340363: If an element in the bubble was the target, return focus...
  • drumm committed 43c823f on 7.x-3.x, dev
    Issue #2340363: Label cleanups for accessibility
    
  • drumm committed 605285b on 7.x-3.x, dev
    Issue #2340363: Improve accessibility of comment attribution display
    
  • drumm committed 648f967 on 7.x-3.x, dev
    Issue #2340363: Add role="dialog" to bubbles
    
  • drumm committed 7149dbe on 7.x-3.x, dev
    Issue #2340363: Add customer suggestions
    
  • drumm committed 7185dea on 7.x-3.x, dev
    Issue #2340363: Focus input on click, hide bubbles when something else...
  • drumm committed 8d93a84 on 7.x-3.x, dev
    Issue #2340363: Use default values from last comment on the issue, then...
  • drumm committed 9da6e7f on 7.x-3.x, dev
    Issue #2340363: Add classes for issue comment attribution
    
  • drumm committed a1134b0 on 7.x-3.x, dev
    Issue #2340363: Add issue comment attribution
    
  • drumm committed aec55cc on 7.x-3.x, dev
    Issue #2340363: Add 'Attribute comment for customer' title
    
  • drumm committed b23c5c7 on 7.x-3.x, dev
    Issue #2340363: Add accessible context to customer suggestions
    
  • drumm committed bb1ac3e on 7.x-3.x, dev
    Issue #2340363: Focus the attribution bubbles, instead of their form...
  • drumm committed c3a2df3 on 7.x-3.x, dev
    Issue #2340363: Change issue comment attribution to display on click
    
  • drumm committed d23966c on 7.x-3.x, dev
    Issue #2340363: More-specific attribution field labels
    
  • drumm committed e2cd245 on 7.x-3.x, dev
    Issue #2340363: Use current comment author when editing someone else's...
  • drumm committed e64b2fd on 7.x-3.x, dev
    Issue #2340363: Remove "This is all me" links
    
  • drumm committed e6922f9 on 7.x-3.x, dev
    Issue #2340363: Move "New customers need an organization page" above the...
  • drumm committed e92eb3e on 7.x-3.x, dev
    Issue #2340363: Show "Credit" on all issue comments
    
  • drumm committed ee4526d on 7.x-3.x, dev
    Issue #2340363: Improve suggestions when typing
    
  • drumm committed f0c0f38 on 7.x-3.x, dev
    Issue #2340363: Language clarification
    

  • drumm committed 03eb5d5 on 7.x-3.x, dev
    Issue #2340363: Link to documentation
    
drumm’s picture

Status: Reviewed & tested by the community » Fixed
Issue tags: +needs drupal.org deployment

I made a test comment at https://staging.devdrupal.org/node/2435135 and everything looks okay. This should be deployable this afternoon.

YesCT’s picture

I'm super excited.
I think we can be fine with follow-ups on this.

drumm’s picture

Issue tags: -needs drupal.org deployment

Now deployed.

Wim Leers’s picture

We wouldn't want to put the defaults for each issue in localStorage, that would get filled up. Querying the DB is a good way to do this.

I didn't realize he wanted to go for per–issue defaults. Then localStorage indeed doesn't make much sense. But what about an issue where you haven't commented yet?

I think querying the DB is bad though: if the data is embedded as data-attributes in the HTML, then some JS can just retrieve the latest values entered by the current user on that issue. Plus, it allows tools like dreditor — and even custom style sheets — to do interesting things.

Wim Leers’s picture

Cross-posted with this being deployed. Was typing this on my iPad on my own time. Which is how I noticed this works horribly on touch devices, because it apparently is designed to only work with hover events :) I guess this is the first follow-up bug report :)

You might want to take a look at the JS for contextual.module in D8: that works with hover on non-touch devices, and without hover on touch devices.

Excited to see this live!

drumm’s picture

There are no hovers here, because they aren't functional on touch screens, and are distracting when mousing across your desktop.

  • drumm committed b7461c3 on 7.x-3.x, dev
    Issue #2340363: Do not give the robot credit
    
drumm’s picture

If you are seeing the extra credit UI on System message comments, the fix for that is deployed, and it is render caching keeping some around.

Wim Leers’s picture

Hrm, I see. It works bizarrely though: only while touching is the popover displayed. But… that also means my finger is occluding what I'm trying to read :) Just needs some refinement.

drumm’s picture

The touchstart event handler is doing a bit too much. This commit is done on the attribution dev site, and looks good to me. I'll hold off on deploying until something else needs to be deployed, or after #1412130: Use Advanced CSS/JS Aggregation on Drupal.org. (cssjs cache clears often cause ~2 min downtimes on Drupal.org.)

tim.plunkett’s picture

Per-issue defaults is going to get really annoying. I comment on a lot of issues, remembering to switch it for each one is going to be rough.

drumm’s picture

Let's revisit the defaults once we have a couple weeks of data. I expect it will be more common for each person to have one attribution setting per-issue. @tim.plunkett can you give an example of an issue that you would switch attribution on mid-issue?

webchick’s picture

Yeah, agreed. We need a "remember me" checkbox or something for people for whom most of their comments should be attributed to someone other than themselves. Follow-up posted at #2451381: Refine organization credit selection UX based on contributor use cases.

Also, when trying to create a follow-up about that, I noticed that credit doesn't appear on nodes. I guess that makes sense since this is called "issue comment attribution" but it's weird, since the initial creation of the issue can often be of the most valuable contributions to it. So we should have a follow-up about that (and probably another to talk ahout expending to other node types like book pages, etc.)

Also still need a follow-up for refining the interaction on touch devices.

webchick’s picture

Also to clarify for drumm what I think #181 is getting at, it's not the switching attribution mid-issue that's the problem, it's "during the course of an 8 hour work day for company X, I'm commenting on 25+ issues and need to remember to set this each and every time." I don't think it's that uncommon of a use case, at least among major contributors. Heck, the D.o tech team members themselves have the same need, too.

YesCT’s picture

We can elaborate on defaults in #2451387: Defaults for issue comment attribution

YesCT’s picture

@webchick regarding #183

Also, when trying to create a follow-up about that, I noticed that credit doesn't appear on nodes. I guess that makes sense since this is called "issue comment attribution" but it's weird, since the initial creation of the issue can often be of the most valuable contributions to it. So we should have a follow-up about that

maybe as part of #2449489: Automatically generate comment when an issue is created (or related to that)

Bojhan’s picture

Thanks, great work! Happy that our small "Credit" idea managed to tackle the major concerns around the prominence.

Lets also have an issue to design the "attribution" UI in the new comment form - that's currently kinda undesigned and the labeling is somewhat off (negative connotation on the not applicable, assuming I can only be represented by an organisation).

Regarding #2340363: Add issue comment attribution. @joshuami are you actually looking into useage statistics or? I don't want D.O developments to fall into the pitfall of analysis paralysis, where any review can be countered with - "we should do behaviour/attitudinal analysis to find out if you are right". At large there should be a clear need to go down this path, as I can imagine our resources/experience to actually look into behaviour are very limited.

joshuami’s picture

@bojahn, I do not want analysis paralysis either. The analysis should happen after releasing the minimum viable feature. The usage analytics I'm talking about are simple ones. How many times has attribution been given by how many would be a good number to start. By combining real user feedback with some usage stats, we can create a better feature. I have had a number of times when someone said to me "that page/feature/content is important" and then I pull up usage stats and see that it has only been used 200 times in the last year.

  • drumm committed a69002d on 7.x-3.x, dev
    Issue #2340363: Only hide attribution on touchstart
    

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

YesCT’s picture

YesCT’s picture

Issue summary: View changes

updating an item in the proposed resolution in the issue summary that was that issue.