Project

General

Profile

Actions

機能 #888

closed

ふぁぼろうとした瞬間に別ツイートが滑りこんで誤ふぁぼする事故を防ぐ機能

Added by Izumi Tsutsui about 8 years ago. Updated over 6 years ago.

Status:
終了
Priority:
通常
Target version:
Start date:
Due date:
% Done:

0%

プラグイン名:

Description

概要

mikutter の TL の仕様として
「一番上に最新のツイートを表示している状態で新しいツイートを受信すると既存のTLが下にスクロールする」
という機能がある。

この機能とマウスオーバーアイコンが提供するUIの組み合わせにより生じる問題がある。

詳細

事象

ツイート受信時の TL自動スクロールとマウスオーバーアイコンによるふぁぼ・RT機能が複合することにより

  1. ふぁぼろうとしてマウスカーソルをアイコン上に持って行って照準を定める
  2. ここだっ!! とクリック
    • → 上記 2アクションの間に新たなツイートを受信する
      • → クリックする直前にクリックしようとした場所にTL上のひとつ上のツイートが滑り込む
        • → 結果として意図していないツイートに対して誤ふぁぼあるいは誤RTする

という事故が発生する。

影響

以下のような事例や報告が観測されている。
  • TL流速が速いとそもそもふぁぼが困難
  • 取り消したいけれどあんふぁぼ通知でがっかりさせるのも申し訳ない
  • 誤RTしたツイートに特殊な性癖の画像が添付されていて失われた信頼が戻ってこない
  • 誤ふぁぼられた人から因縁をつけられ訴訟沙汰となる

報告事例

https://twitter.com/tsutsuii/status/268369800374407168

ふぁぼろうとしたらTLがスクロールしてRTになる事案が発生

https://twitter.com/tsutsuii/status/290473645338394624

ふぁぼろうとしたらTLが流れて次のツイートを誤爆する事案が発生

https://twitter.com/nonakap/status/686372302141796352

mikutter、ユーザアイコン上にマウスカーソルがある状態(ふぁぼなりリツイートしようとしている状態)ではTLをスクロールさせないで欲しい…

https://twitter.com/Akkiesoft/status/774828087187869696

@charsiuCat 別のをふぁぼろうとした瞬間にマルベリータが滑りこんできて誤ふぁぼした、訴訟

対策案

とりあえず安直に以下の2つの案が考えられる。

自動スクロール仕様に対する修正

「マウスオーバーアイコンを表示している間は自動スクロールをしない」という案がある。

懸念事項

ただし、この場合は「マウスオーバーアイコンを表示し終わったときにどうするか」という規定が必要になる。
  • RTもしくはふぁぼを実行し終わった場合
  • マウスを動かしてマウスをアイコン外に移動した場合
上記それぞれについて
  • あらためて自動スクロールさせる
  • 自動スクロール条件を外したままにする

のいずれかとするか決める必要があると考えられる。

自動スクロールする場合も、その仕様を規定する必要があると考えられる。
  • #304 の仕様でスクロールさせる
  • 保留されているツイートの数に応じて早送りでスクロールさせる

マウスオーバーアイコン仕様に対する修正

現状のマウスオーバーアイコンは「マウスカーソルがアイコン上にある」という条件で表示される。
これを以下のように修正すると当チケットが問題として挙げている事故は防げると考えられる。

  • マウスカーソルを動かしてアイコン上に入った場合にはマウスオーバーアイコンを表示する
  • ツイートのほうが動いて止まっているマウスカーソル上に重なった場合はマウスオーバーアイコンを表示しない

懸念事項

#319-2 には以下のようなとしぁさんコメントが存在する。

ふぁぼは誤らないことより速度のほうが大事であり、自分をふぁぼることが間違いであるにせよ、そのためにモーダルダイアログによって操作を止められるよりは、誤ふぁぼを無視して次々ふぁぼっていくほうが建設的であり、オプションとして提供する必要もないと考えられる。

マウスオーバーアイコンに対する仕様変更はこの思想と相容れない可能性がある。

蛇足

現状のマウスオーバーアイコンの仕様として、以下のような挙動が観測されている。

  • マウスオーバーアイコンを表示している最中に TL自動スクロールによりアイコンがマウスカーソルから外れても
    アイコン上にマウスオーバーアイコンが表示されたままになっている

結果としてTLのアイコンすべてにマウスオーバーアイコンが表示されたままになっているというケースもある。
この挙動の是非についてもついでに考察する? これは別チケットで対処すべき?


Files

888.patch (1.54 KB) 888.patch cob odo, 2018-04-20 22:59
Actions #1

Updated by toshi_a 初音 about 8 years ago

だめだ、今日は頭が働いてなくて内容が理解できないので後日。

蛇足

別の問題なので、別のチケットにしてください

Actions #2

Updated by Izumi Tsutsui about 8 years ago

Izumi Tsutsui さんは書きました:

  • マウスカーソルを動かしてアイコン上に入った場合にはマウスオーバーアイコンを表示する
  • ツイートのほうが動いて止まっているマウスカーソル上に重なった場合はマウスオーバーアイコンを表示しない
「自動スクロールでツイートのほうがマウスカーソルに飛び込んできた場合」の挙動を
としぁさんをふぁぼって確認したのですが
  • ツイートのほうが飛び込んできたときはマウスオーバーアイコンは表示されない
  • マウスオーバーアイコンが表示されていなくても、
    マウスカーソルがアイコンのふぁぼ/RTの位置にある時にクリックすると
    対応する動作が発動する

という動きでした。

マウスオーバーアイコンが表示されていない時は対応する動作をさせない、
というのが(可能かどうかわかりませんが)妥当なんですかね。

Actions #3

Updated by Izumi Tsutsui over 7 years ago

そういえばこんなツイートがありました
https://twitter.com/toshi_a/status/31566704467255296

まじでマウスカーソル乗ってる間はタイムラインをスクロールしないようにするべき

Actions #4

Updated by toshi_a 初音 over 7 years ago

2011年のツイート引っ張り出してくるの怖すぎるんだけど

Actions #5

Updated by Izumi Tsutsui over 7 years ago

#1038 の本文に貼ったツイートは探すのにだいぶ苦労しましたね……(チケットと関係ない)

Actions #6

Updated by cob odo over 6 years ago

パッチを書いてみました。ごく単純に、マウスオーバーアイコンを表示するかどうか判定するタイミングでフラグをON/OFFしているだけです。
atomicは、必要なければ単に重くなるだけなので外したほうがよさそうですが……

Actions #7

Updated by toshi_a 初音 over 6 years ago

  • Status changed from 新規 to 実装待ち
  • Assignee set to cob odo
  • Target version set to 3.7

良さそうですね。俺は今はアイコンボタン使ってないので評価できないのですが、シンプルで良いと思います。

atomicは、必要なければ単に重くなるだけなので外したほうがよさそうですが……

この部分は全てUIスレッドで動作するため排他制御は必要ないので、外してコミットしてください。

先程、金具さんのgithubに登録されているSSHキーをmikutterのリポジトリに登録し、コミット権限を付与しました。githubにpushするのに使っているキーで行けると思うので、以下のURLに書いてある情報を見てリモートを設定してください。

https://dev.mikutter.hachune.net/documents/2 (第三者が見ても問題ない情報しか書いてないですが、一応コミッタしか見れないようになっています)

リポジトリのブランチ名の規約 にあるルールに則って、topicブランチを作って添付してもらったパッチをpushしてください。

pushできたら、ステータスを「レビュー待ち」にし、担当者をつついさんにしてください。

Actions #8

Updated by cob odo over 6 years ago

  • Status changed from 実装待ち to レビュー待ち
  • Assignee changed from cob odo to Izumi Tsutsui

topic/888-dont-scroll-when-faving ブランチにpushしました。レビューお願いします。

Actions #9

Updated by Izumi Tsutsui over 6 years ago

  • Assignee changed from Izumi Tsutsui to cob odo

Live Image 作成で力尽きていて遅くなってすいません。

NetBSD/i386 8.0_RC1 Live Image 上の 3.6.6 に 73055894 の差分を直接当てて試してみました。
意図通り動いている(マウスオーバーアイコン表示しているとスクロールしない)と思います。

仕様としては以下ですよね。
  • RTもしくはふぁぼを実行し終わった場合も、マウスカーソルを動かさない限りは自動スクロールは再開しない
    (マウスオーバーアイコンは表示されたままなので)
  • マウスを動かしてマウスをアイコン外に移動した場合は、自動スクロールのフラグは真に戻すが、
    すでに新しいツイートが受信されている場合はもう一つの自動スクロール条件
    「ツリービューの一番上が表示されてる時」が外れるので、
    結果としてマウスカーソル移動後も自動スクロールしない

トラッカーが「機能」なのでステータスに「マージ待ち」が無いですが、
いったん担当者を金具さんに戻しておきます。
対象バージョンが 3.7 なので develop にマージなんですかね。(そのへんは適宜としぁさんに相談で)

Actions #10

Updated by cob odo over 6 years ago

仕様としては以下ですよね。

そうなります。

トラッカーが「機能」なのでステータスに「マージ待ち」が無いですが、
いったん担当者を金具さんに戻しておきます。
対象バージョンが 3.7 なので develop にマージなんですかね。(そのへんは適宜としぁさんに相談で)

どうなんでしょう?>としぁさん
https://dev.mikutter.hachune.net/projects/mikutter/wiki/%E3%83%90%E3%82%B0%E5%A0%B1%E5%91%8A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95 には、「バグ」トラッカーの場合については丁寧に書いてありますが、「機能」トラッカーの場合はどうなるのか……

Actions #11

Updated by Izumi Tsutsui over 6 years ago

  • Assignee changed from cob odo to toshi_a 初音

とりあえずとしぁさんに振ってしまいますね

Actions #12

Updated by toshi_a 初音 over 6 years ago

  • Status changed from レビュー待ち to 終了

develop ブランチにmergeしました。
機能トラッカーはいろいろと改善の余地がありますね。

Actions

Also available in: Atom PDF