hometown-fork / hometown

A supported fork of Mastodon that provides local posting and a wider range of content types.
GNU Affero General Public License v3.0
754 stars 57 forks source link

Local-only toots should probably not be shareable #12

Closed marrus-sh closed 5 years ago

marrus-sh commented 5 years ago

On certain mobile devices, Mastodon adds a share button on public statuses. However, as i understand, local-only toots are not really “public” and so should probably not have a share button attached.

For detailed statuses, the line controlling this is here (L178):

https://github.com/hometown-fork/hometown/blob/master/app/javascript/mastodon/features/status/components/action_bar.js#L178

And for ordinary (timeline) statuses, the line is here (L246):

https://github.com/hometown-fork/hometown/blob/master/app/javascript/mastodon/components/status_action_bar.js#L246

emmawinston commented 5 years ago

Hello! I have been helping @dariusk out with front-end stuff and working my way through the issues list :)

I have chatted about this with Darius briefly away from Github, but it's a slightly more complex UX problem than I had initially envisioned it being, so I am bringing it back here for suggestions.

The tricky part is that the share button doesn't exist only to copy the URL of a post to social media sites; it also lets you copy it to to-do list apps, notes apps, the Safari local reading list on iOS, etcetera.

If you (like me) stay permanently logged into your home instance, then -- for example -- saving a link to your to-do list to check out later, which your friend posted locally, works seamlessly. If we remove the share button completely, we also lose that functionality for local-only posts.

That said, I do agree that having a share button available on non-public posts is potentially confusing. I am leaning towards thinking it might be better to either:

  1. display some kind of tooltip when sharing, explicitly reminding you this is a local post (although I'm not sure how to implement this in the UI, since share intent is a single tap -- ideas/opinions would be very welcome)
  2. display a slightly different sharing icon from the standard one on local-only posts, to serve as an implicit reminder that if you post this publicly, no one will see it (also welcoming any thoughts on what this should look like).

Any alternative ideas are also very welcome! I do think that this is a place where the UX could be improved, it's just not quite as simple as I originally thought.

marrus-sh commented 5 years ago

The reason why I would lean towards disabling the share functionality overall is because that is effectively what upstream does for numerous other categories of posts which fit the use-cases you describe (namely, unlisted, and even private posts, which, if you are permanently logged into your home instance, have links that you could otherwise save and view at a later date).

The fact that unlisted posts, which are viewable by everyone and whose links could conceivably be shared with others, still have the share button disabled (they do not have a visibility of "public") suggests to me that local-only toots should follow this model (or else perhaps we should consider allowing other post types to use the share button as well).

(In the latter case, I think a different sharing icon would be useful; this is a bit hacky and just an idea, but maybe something along the lines of

<span aria-hidden="true" class="fa-stack" style="
  width: 1.28571429em;
  height: 1.28571429em;
  line-height: 1.28571429em;
">
  <i class="fa fa-share fa-stack-1x"></i>
  <i class="fa fa-exclamation-triangle fa-stack-1x" style="
    bottom: -.5em;
    left: auto;
    right: -.25em;
    font-size: .5em;
    line-height: 1;
    text-align: right;
"></i>
</span>

[this is not JSX] plus a change to the title and aria-label of the containing button.)

emmawinston commented 5 years ago

Tagging @dariusk because I think it would be useful to have his thoughts on this!

I feel like there is more justification for shareable local-only posts on Hometown than for shareable private/unlisted posts on Mastodon, since an instance which is more trust-based, which (at least as I understand it, though I might be wrong) Hometown is designed to foster -- on a small trust-based network you're more likely to have interactions with people on the instance away from the fediverse, too. In that case local-only sharing seems to have more of a purpose.

But I am also very aware that that is only one use case, and that Hometown is open-source and won't necessarily be used only for trust-based networks, and in the case of a large anonymous network, disabling sharing for anything not intended for the wider public does make more sense.

I think at this point I want to defer to Darius on this, since it strikes me that the best solution depends very much on what kind of networks Hometown is intended to serve, relative to upstream Mastodon.

Thank you so much for the work on the alternative icon also!

dariusk commented 5 years ago

After giving it some thought, I think I agree that if unlisted posts lack the share button, then local-only posts should lack the share button as well, just out of consistency's sake.

I don't think a lot of people use the "share intent" functionality on the mobile web client anyway and I'm okay with just keeping it consistent.

emmawinston commented 5 years ago

Thanks for the input :) Will PR a fix for this in probably a few hours’ time!