「Enter vs command-Enter vs Shift-Enter vs control-Enterで送信」について調べてみた

### command(ctr)-Enter vs Shift-Enter vs Enter で送信について調べてみた

本エントリーはAdvent Calendar 2021「[初めてのアドベントカレンダー Advent Calendar 2021](https://qiita.com/advent-calendar/2021/first-try)」の15日目のエントリーです！

### きっかけ

オンラインプレゼンをスムーズにできるスライドアプリの「[Smoothie Slide](https://smoothie-slide.com/)」というアプリケーションを開発していて、先日行われた学生エンジニアのピッチコンテストの[技育展](https://talent.supporterz.jp/geekten/2021/)に向けて機能強化を行いました。流れるコメント機能を実装しました。メンバー内で改善するにあったって、コメントの送信はボタンを押すだけではなく、キーボード操作で送信できた方が使いやすいという話になり、「Shift-Enter」で送信の機能を作りました。
実際に作ったアプリで発表したのですが、質問コーナーで「command (Ctr)-Enter」で送信の機能はないのか？という質問をもらい、「Shit-Enter」で送信できます（送信ボタンの横にも書いてある）という返答をしたのですが、やはり「command (Ctr)-Enter」で送信の方がいいのかな？と思いました。
「Shift-Enter」を選んだきっかけは、

 - 「command (Ctr) -Enter」だと、macやWindowsでキーボード配列が違うため、それぞれ対応する必要があった
 - YouTube liveやメッセンジャーなど、「Shift-Enter」で送信ができた

という理由を話し合い決めました。ただ、広くは調べていなかったためどの形がメジャーかわかっていませんでした。
また、**「改行したいのに送信されて変なところでメッセージが送られる現象」**はよく起こるので、実際のアプリではどのように割り当てられているか気になっていました。
そこで、今回はチャットアプリなど送信ボタンがあるアプリについて、調べてみることにしました。

[![alt テキスト](https://gyazo.com/71702d6b321c9318724be91f9882ebdf/max_size/1000)](https://gyazo.com/71702d6b321c9318724be91f9882ebdf "")改行したと思ったら送信されていた現象例

[![Image](https://gyazo.com/3a46a12025b6f0601bfab26438534033/max_size/1000)](https://gyazo.com/3a46a12025b6f0601bfab26438534033)
[Smoothie Slide](https://smoothie-slide.com/)のコメント入力画面

### 調べるアプリ一覧
##### チャットアプリ
- [Slack](https://app.slack.com/)（WEB版, macOS版）
- [Didcord](https://discord.com/channels/@me)（WEB版, macOS版） - LINE（macOS版）
- [ZOHO connect](https://connect.zoho.com/)
- [Google chat](https://mail.google.com/chat/u/0/)
- [Twitter DM](https://twitter.com/)
- [Twitter （ツイート）](https://twitter.com/)

##### 動画アプリ
- [YouTube live](https://www.youtube.com/)
- [ニコニコ動画](https://www.nicovideo.jp/)

##### その他のアプリ
- [Trello](https://trello.com/ja/home)
- [GitHub Projects](https://github.co.jp/)
- [Google フォーム](https://www.google.com/intl/ja_jp/forms/about/)

##### 調べられなかったアプリ
- Facebook：調査を協力できる友達がいなかったため
- messenger：調査を協力できる友達がいなかったため
- ツイキャス：使っていないため

調べられなかったアプリなどぜひコメントで返信していただけると助かります。


### 調べるコマンド
 - 「Enter」
 - 「command-Enter」
 - 「control-Enter」
 - 「Shift-Enter」

押した時に、「送信」「改行」「何もなし」のどれが行われるかを調べる。

注意：細かくはmacでは「Enter」は「return」という名前なのですが、今回は「Enter」に表記を統一しています。

### 調査環境
 - MacBook Pro
 - WEBアプリはChormeブラウザを使用

注意：Windows環境では調査結果が異なる可能性があります。

## 調査結果
#### チャットアプリ
##### Slack（WEB版）

Enterで改行
command-Enterで送信
Shift-Enterで改行
control-Enterで送信
[![Image](https://gyazo.com/3979fcfdf68facbd67142192a36a4e46/max_size/1000)](https://gyazo.com/3979fcfdf68facbd67142192a36a4e46)
##### Slack（macOS版）
[![Image](https://gyazo.com/9cbb8622d95568808d1524ff834a176a/max_size/1000)](https://gyazo.com/9cbb8622d95568808d1524ff834a176a)

スタンドアロンアプリでも同様の結果でした。
スタンドアロンアプリの方では、メッセージを入れると、右下に補助として「command+Returnで送信、Returnで改行」の補足が出てくる親切設計でした。


##### Didcord（WEB版, macOS版）
[![Image](https://gyazo.com/9fbdf0bea3278cb800242e41d92941c7/max_size/1000)](https://gyazo.com/9fbdf0bea3278cb800242e41d92941c7)

Enterで送信
command-Enterで送信
Shift-Enterで改行
control-Enter：何も起こらない

Discordの場合は、「Shift-Enter」は改行でした。



##### LINE（macOS版）
[![Image](https://gyazo.com/f1b95d1c096ba5d4cd09910130fdb36a/max_size/1000)](https://gyazo.com/f1b95d1c096ba5d4cd09910130fdb36a)

Enterで改行
command-Enterで送信
Shift-Enterで改行
control-Enterで改行

##### ZOHO connect

[![Image](https://gyazo.com/addf4b9938cb9ffa46724b070e9ed0f5/max_size/1000)](https://gyazo.com/addf4b9938cb9ffa46724b070e9ed0f5)
Enterで改行
command-Enterで改行
Shift-Enterで改行
control-Enterで改行

ZOHO Connectの場合は、全てで改行でした。送信（共有）がされるボタンはありませんでした。


##### Google chat
[![Image](https://gyazo.com/7c29d3b2c6b56b9308142ae2c3fecf56/max_size/1000)](https://gyazo.com/7c29d3b2c6b56b9308142ae2c3fecf56)

Enterで送信
command-Enterで送信
Shift-Enterで改行
control-Enterで送信

##### Twitter DM
[![Image](https://gyazo.com/ec530ec8e2df87d1f4b1db245fbcb5a0/max_size/1000)](https://gyazo.com/ec530ec8e2df87d1f4b1db245fbcb5a0)
Enterで送信
command-Enterで何もなし
Shift-Enterで改行
control-Enterで改行

##### Twitter
Twitterでツイートを送信する時についても調べました
[![Image](https://gyazo.com/df11d534def9e5a14db0cffe333ccf41/max_size/1000)](https://gyazo.com/df11d534def9e5a14db0cffe333ccf41)

Enterで改行
command-Enterで送信
Shift-Enterで改行
control-Enterで改行

TwitterのDMとツイートで改行と送信が違うことを知りました。Twitter DMで改行と思ってEnterを押すのはこのためではと思いました。

#### 動画アプリ

##### YouTube Live
[![Image](https://gyazo.com/cbf90e8ccf1e3e8b57a93b5ca44e97de/max_size/1000)](https://gyazo.com/cbf90e8ccf1e3e8b57a93b5ca44e97de)
Enterで送信
command-Enter：何もなし
Shift-Enterで送信
control-Enterで送信

動画のコメントなので、改行はされずほとんどのボタンで送信でした。

##### ニコニコ動画
[![Image](https://gyazo.com/a1a0b47c9c8d5c3e5a7c75ef92ab2a63/max_size/1000)](https://gyazo.com/a1a0b47c9c8d5c3e5a7c75ef92ab2a63)
Enterで送信
command-Enterで送信
Shift-Enterで送信
control-Enterで送信

こちらもYouTube liveと同様に全てのボタンで送信でした。

#### その他のアプリ
##### Trello
Trelloについても調べてみました。
カードを追加するまでとカード内を編集する動作で挙動が違ったのでそれぞれ列挙します
##### Trelloカード作成
[![Image](https://gyazo.com/3813e28cadfb5ef8d6b33770e5d77073/max_size/1000)](https://gyazo.com/3813e28cadfb5ef8d6b33770e5d77073)
Enterで送信
command-Enterで送信
Shift-Enterで送信＋詳細画面が開く
control-Enterで送信

Shift-Enterで送信をした時だけ、詳細画面が開くのが意外でした。Trelloのカードは作成した後に、詳細を書いたり、アクティビティを記録したりするので、Shift-Enterで送信をすれば、カードを作った後に、GUIでボタンを押すのを省略することができそうです。


[![Image](https://gyazo.com/4828db33a24f3a4f89ac142ca54bdfac/max_size/1000)](https://gyazo.com/4828db33a24f3a4f89ac142ca54bdfac)

##### Trello アクティビティログ
Enterで改行
command-Enterで送信
Shift-Enterで改行
control-Enterで送信


##### GitHub Projects
GitHubにもカンバンボードに近い機能があるのでそちらについても調べてみました。
[![Image](https://gyazo.com/0bceb22a1ce28c61edf512e6b2b3cfc7/max_size/1000)](https://gyazo.com/0bceb22a1ce28c61edf512e6b2b3cfc7)
Enterで改行
command-Enterで送信
Shift-Enterで改行
control-Enterで送信

##### Google フォーム
[![Image](https://gyazo.com/2a07e724a13c4853f84c68f865098809/max_size/1000)](https://gyazo.com/2a07e724a13c4853f84c68f865098809)

Enterで改行
command-Enter：何もなし
Shift-Enterで改行
control-Enter：何もなし

Google Formはキーボードで送信をすることはできなさそうです。

### まとめ

最後に調査結果のまとめのグラフです。

|                              | Enter | command-Enter | Shift-Enter          | control-Enter | 
| ---------------------------- | ----- | ------------- | -------------------- | ------------- | 
| Slack                        | 改行  | 送信          | 改行                 | 送信          | 
| Discord                      | 送信  | 送信          | 改行                 | 何もなし      | 
| LINE                         | 改行  | 送信          | 改行                 | 改行          | 
| ZOHO connect                 | 改行  | 改行          | 改行                 | 改行          | 
| Google Chat                  | 送信  | 送信          | 改行                 | 送信          | 
| Twitter DM                   | 送信  | 何もなし      | 改行                 | 改行          | 
| Twitter                      | 改行  | 送信          | 改行                 | 改行          | 
| YouTube live                 | 送信  | 何もなし      | 送信                 | 送信          | 
| ニコニコ動画                 | 送信  | 送信          | 送信                 | 送信          | 
| Trello（カード作成）         | 送信  | 送信          | 送信＋詳細画面が開く | 送信          | 
| Trello（アクティビティログ） | 改行  | 送信          | 改行                 | 送信          | 
| GitHub Projects              | 改行  | 送信          | 改行                 | 送信          | 
| Google フォーム              | 改行  | 何もなし      | 改行                 | 何もなし      | 

Enterで送信がなされているのは、Discord、Google chat、Twitter DM、YouTube live、ニコニコ動画という形でした。

command-Enterで送信は、今回調べたアプリの多くが送信に割り当てられていました。
Shift-Enterは、多くが改行に割り当てられていて、YouTube liveやニコニコ動画などの改行の必要がないアプリでは送信になっていました。
control-Enterは、半々ぐらいという形でした。


## おわりに

[Smoothie Slide](https://smoothie-slide.com)のコメント機能は改行ができないので、YouTube liveやニコニコ動画のように、全て送信を割り当てて良さそうと思いました。（逆に、Shift-Enterだけを送信にしているのは不適切そうだと思いました。）

ハッカソンに参加するなどして、自分でアプリケーションを作る側になったことで、普段使っているアプリの真似したいところや逆にこのように作らないようにしようというのを意識するように、視点が変わって日々新たな発見の連続です。


明日の「[初めてのアドベントカレンダー Advent Calendar 2021](https://qiita.com/advent-calendar/2021/first-try)」は[@psbss
](https://qiita.com/psbss)さんのエントリーです。
文章管理テクニック記事らしいので楽しみです。