プロジェクト

全般

プロフィール

機能 #888

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

Izumi Tsutsui約2年前に追加. 6ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
期日:
進捗率:

0%

プラグイン名:

説明

概要

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

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

関係しているリビジョン

リビジョン 73055894 (差分)
cob odo6ヶ月前に追加

マウスオーバーアイコンを表示している間は自動スクロールしないようにする refs #888

履歴

#1 toshi_a 初音約2年前に更新

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

蛇足

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

#2 Izumi Tsutsui約2年前に更新

Izumi Tsutsui さんは書きました:

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

という動きでした。

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

#3 Izumi Tsutsui1年以上前に更新

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

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

#4 toshi_a 初音1年以上前に更新

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

#5 Izumi Tsutsui1年以上前に更新

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

#6 cob odo6ヶ月前に更新

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

#7 toshi_a 初音6ヶ月前に更新

  • ステータス新規 から 実装待ち に変更
  • 担当者cob odo にセット
  • 対象バージョン3.7 にセット

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

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

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

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

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

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

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

#8 cob odo6ヶ月前に更新

  • ステータス実装待ち から レビュー待ち に変更
  • 担当者cob odo から Izumi Tsutsui に変更

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

#9 Izumi Tsutsui6ヶ月前に更新

  • 担当者Izumi Tsutsui から cob odo に変更

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

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

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

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

#10 cob odo6ヶ月前に更新

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

そうなります。

トラッカーが「機能」なのでステータスに「マージ待ち」が無いですが、
いったん担当者を金具さんに戻しておきます。
対象バージョンが 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 には、「バグ」トラッカーの場合については丁寧に書いてありますが、「機能」トラッカーの場合はどうなるのか……

#11 Izumi Tsutsui6ヶ月前に更新

  • 担当者cob odo から toshi_a 初音 に変更

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

#12 toshi_a 初音6ヶ月前に更新

  • ステータスレビュー待ち から 終了 に変更

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

他の形式にエクスポート: Atom PDF