diff --git a/files/ja/web/api/webrtc_api/connectivity/index.md b/files/ja/web/api/webrtc_api/connectivity/index.md
index ded466a13f41d2..c73f467837eee6 100644
--- a/files/ja/web/api/webrtc_api/connectivity/index.md
+++ b/files/ja/web/api/webrtc_api/connectivity/index.md
@@ -7,7 +7,8 @@ slug: Web/API/WebRTC_API/Connectivity
WebRTC ではさまざまなプロトコルが相互作用してピアー間の接続を確立し、データやメディアの転送を行いますが、この記事ではその仕組みを解説します。
-> **メモ:** このページは、構造的な完全性と内容の完全性のために、大幅な書き換えが必要です。多くの情報があるのは良いことですが、ここは現在ゴミ捨て場のようなものなので、構成はめちゃくちゃです。
+> [!NOTE]
+> このページは、構造的な完全性と内容の完全性のために、大幅な書き換えが必要です。多くの情報があるのは良いことですが、ここは現在ゴミ捨て場のようなものなので、構成はめちゃくちゃです。
## シグナリング
@@ -53,7 +54,8 @@ When reading the description (returned by {{domxref("RTCPeerConnection.localDesc
When changing the description by calling `setLocalDescription()` or `setRemoteDescription()`, the specified description is set as the pending description, and the WebRTC layer begins to evaluate whether or not it's acceptable. Once the proposed description has been agreed upon, the value of `currentLocalDescription` or `currentRemoteDescription` is changed to the pending description, and the pending description is set to null again, indicating that there isn't a pending description.
-> **メモ:** The `pendingLocalDescription` contains not just the offer or answer under consideration, but any local ICE candidates which have already been gathered since the offer or answer was created. Similarly, `pendingRemoteDescription` includes any remote ICE candidates which have been provided by calls to {{domxref("RTCPeerConnection.addIceCandidate()")}}.
+> [!NOTE]
+> The `pendingLocalDescription` contains not just the offer or answer under consideration, but any local ICE candidates which have already been gathered since the offer or answer was created. Similarly, `pendingRemoteDescription` includes any remote ICE candidates which have been provided by calls to {{domxref("RTCPeerConnection.addIceCandidate()")}}.
See the individual articles on these properties and methods for more specifics, and [Codecs used by WebRTC](/ja/docs/Web/Media/Formats/WebRTC_codecs) for information about codecs supported by WebRTC and which are compatible with which browsers. The codecs guide also offers guidance to help you choose the best codecs for your needs.
@@ -61,7 +63,8 @@ See the individual articles on these properties and methods for more specifics,
As well as exchanging information about the media (discussed above in Offer/Answer and SDP), peers must exchange information about the network connection. This is known as an **ICE candidate** and details the available methods the peer is able to communicate (directly or through a TURN server). Typically, each peer will propose its best candidates first, making their way down the line toward their worse candidates. Ideally, candidates are UDP (since it's faster, and media streams are able to recover from interruptions relatively easily), but the ICE standard does allow TCP candidates as well.
-> **メモ:** Generally, ICE candidates using TCP are only going to be used when UDP is not available or is restricted in ways that make it not suitable for media streaming. Not all browsers support ICE over TCP, however.
+> [!NOTE]
+> Generally, ICE candidates using TCP are only going to be used when UDP is not available or is restricted in ways that make it not suitable for media streaming. Not all browsers support ICE over TCP, however.
ICE allows candidates to represent connections over either {{Glossary("TCP")}} or {{Glossary("UDP")}}, with UDP generally being preferred (and being more widely supported). Each protocol supports a few types of candidate, with the candidate types defining how the data makes its way from peer to peer.
diff --git a/files/ja/web/api/webrtc_api/signaling_and_video_calling/index.md b/files/ja/web/api/webrtc_api/signaling_and_video_calling/index.md
index 3d5aba253202b0..88ccd4f4aece6c 100644
--- a/files/ja/web/api/webrtc_api/signaling_and_video_calling/index.md
+++ b/files/ja/web/api/webrtc_api/signaling_and_video_calling/index.md
@@ -105,13 +105,15 @@ Each ICE candidate is sent to the other peer by sending a JSON message of type `
Each ICE message suggests a communication protocol (TCP or UDP), IP address, port number, connection type (for example, whether the specified IP is the peer itself or a relay server), along with other information needed to link the two computers together. This includes NAT or other networking complexity.
-> **メモ:** The important thing to note is this: the only thing your code is responsible for during ICE negotiation is accepting outgoing candidates from the ICE layer and sending them across the signaling connection to the other peer when your {{domxref("RTCPeerConnection.icecandidate_event", "onicecandidate")}} handler is executed, and receiving ICE candidate messages from the signaling server (when the `"new-ice-candidate"` message is received) and delivering them to your ICE layer by calling {{domxref("RTCPeerConnection.addIceCandidate()")}}. That's it.
+> [!NOTE]
+> The important thing to note is this: the only thing your code is responsible for during ICE negotiation is accepting outgoing candidates from the ICE layer and sending them across the signaling connection to the other peer when your {{domxref("RTCPeerConnection.icecandidate_event", "onicecandidate")}} handler is executed, and receiving ICE candidate messages from the signaling server (when the `"new-ice-candidate"` message is received) and delivering them to your ICE layer by calling {{domxref("RTCPeerConnection.addIceCandidate()")}}. That's it.
>
> The contents of the SDP are irrelevant to you in essentially all cases. Avoid the temptation to try to make it more complicated than that until you really know what you're doing. That way lies madness.
All your signaling server now needs to do is send the messages it's asked to. Your workflow may also demand login/authentication functionality, but such details will vary.
-> **メモ:** The {{domxref("RTCPeerConnection.icecandidate_event", "onicecandidate")}} Event and {{domxref("RTCPeerConnection.createAnswer", "createAnswer()")}} Promise are both async calls which are handled separately. Be sure that your signaling does not change order! For example {{domxref("RTCPeerConnection.addIceCandidate", "addIceCandidate()")}} with the server's ice candidates must be called after setting the answer with {{domxref("RTCPeerConnection.setRemoteDescription", "setRemoteDescription()")}}.
+> [!NOTE]
+> The {{domxref("RTCPeerConnection.icecandidate_event", "onicecandidate")}} Event and {{domxref("RTCPeerConnection.createAnswer", "createAnswer()")}} Promise are both async calls which are handled separately. Be sure that your signaling does not change order! For example {{domxref("RTCPeerConnection.addIceCandidate", "addIceCandidate()")}} with the server's ice candidates must be called after setting the answer with {{domxref("RTCPeerConnection.setRemoteDescription", "setRemoteDescription()")}}.
### Signaling transaction flow
@@ -210,7 +212,8 @@ function handleUserlistMsg(msg) {
After getting a reference to the {{HTMLElement("ul")}} which contains the list of user names into the variable `listElem`, we empty the list by removing each of its child elements.
-> **メモ:** Obviously, it would be more efficient to update the list by adding and removing individual users instead of rebuilding the whole list every time it changes, but this is good enough for the purposes of this example.
+> [!NOTE]
+> Obviously, it would be more efficient to update the list by adding and removing individual users instead of rebuilding the whole list every time it changes, but this is good enough for the purposes of this example.
Then we iterate over the array of user names using {{jsxref("Array.forEach", "forEach()")}}. For each name, we create a new {{HTMLElement("li")}} element, then create a new text node containing the user name using {{domxref("Document.createTextNode", "createTextNode()")}}. That text node is added as a child of the `
` element. Next, we set a handler for the {{domxref("Element/click_event", "click")}} event on the list item, that clicking on a user name calls our `invite()` method, which we'll look at in the next section.
@@ -261,7 +264,8 @@ Then we copy the name of the user we're calling into the variable `targetUsernam
Once the `RTCPeerConnection` has been created, we request access to the user's camera and microphone by calling {{domxref("MediaDevices.getUserMedia()")}}, which is exposed to us through the {{domxref("MediaDevices.getUserMedia")}} property. When this succeeds, fulfilling the returned promise, our `then` handler is executed. It receives, as input, a {{domxref("MediaStream")}} object representing the stream with audio from the user's microphone and video from their webcam.
-> **メモ:** We could restrict the set of permitted media inputs to a specific device or set of devices by calling {{domxref("MediaDevices.enumerateDevices", "navigator.mediaDevices.enumerateDevices()")}} to get a list of devices, filtering the resulting list based on our desired criteria, then using the selected devices' {{domxref("MediaTrackConstraints.deviceId", "deviceId")}} values in the `deviceId` field of the `mediaConstraints` object passed into `getUserMedia()`. In practice, this is rarely if ever necessary, since most of that work is done for you by `getUserMedia()`.
+> [!NOTE]
+> We could restrict the set of permitted media inputs to a specific device or set of devices by calling {{domxref("MediaDevices.enumerateDevices", "navigator.mediaDevices.enumerateDevices()")}} to get a list of devices, filtering the resulting list based on our desired criteria, then using the selected devices' {{domxref("MediaTrackConstraints.deviceId", "deviceId")}} values in the `deviceId` field of the `mediaConstraints` object passed into `getUserMedia()`. In practice, this is rarely if ever necessary, since most of that work is done for you by `getUserMedia()`.
We attach the incoming stream to the local preview {{HTMLElement("video")}} element by setting the element's {{domxref("HTMLMediaElement.srcObject", "srcObject")}} property. Since the element is configured to automatically play incoming video, the stream begins playing in our local preview box.
@@ -332,7 +336,8 @@ function createPeerConnection() {
When using the {{domxref("RTCPeerConnection.RTCPeerConnection", "RTCPeerConnection()")}} constructor, we will specify an object providing configuration parameters for the connection. We use only one of these in this example: `iceServers`. This is an array of objects describing STUN and/or TURN servers for the {{Glossary("ICE")}} layer to use when attempting to establish a route between the caller and the callee. These servers are used to determine the best route and protocols to use when communicating between the peers, even if they're behind a firewall or using {{Glossary("NAT")}}.
-> **メモ:** You should always use STUN/TURN servers which you own, or which you have specific authorization to use. This example is using a known public STUN server but abusing these is bad form.
+> [!NOTE]
+> You should always use STUN/TURN servers which you own, or which you have specific authorization to use. This example is using a known public STUN server but abusing these is bad form.
Each object in `iceServers` contains at least a `urls` field providing URLs at which the specified server can be reached. It may also provide `username` and `credential` values to allow authentication to take place, if needed.
@@ -380,7 +385,8 @@ To start the negotiation process, we need to create and send an SDP offer to the
When `createOffer()` succeeds (fulfilling the promise), we pass the created offer information into {{domxref("RTCPeerConnection.setLocalDescription", "myPeerConnection.setLocalDescription()")}}, which configures the connection and media configuration state for the caller's end of the connection.
-> **メモ:** Technically speaking, the string returned by `createOffer()` is an {{RFC(3264)}} offer.
+> [!NOTE]
+> Technically speaking, the string returned by `createOffer()` is an {{RFC(3264)}} offer.
We know the description is valid, and has been set, when the promise returned by `setLocalDescription()` is fulfilled. This is when we send our offer to the other peer by creating a new `"video-offer"` message containing the local description (now the same as the offer), then sending it through our signaling server to the callee. The offer has the following members:
@@ -449,7 +455,8 @@ Once the answer has been created using {{domxref("RTCPeerConnection.createAnswer
Any errors are caught and passed to `handleGetUserMediaError()`, described in [Handling getUserMedia() errors](#handling_getusermedia_errors).
-> **メモ:** As is the case with the caller, once the `setLocalDescription()` fulfillment handler has run, the browser begins firing {{domxref("RTCPeerConnection.icecandidate_event", "icecandidate")}} events that the callee must handle, one for each candidate that needs to be transmitted to the remote peer.
+> [!NOTE]
+> As is the case with the caller, once the `setLocalDescription()` fulfillment handler has run, the browser begins firing {{domxref("RTCPeerConnection.icecandidate_event", "icecandidate")}} events that the callee must handle, one for each candidate that needs to be transmitted to the remote peer.
##### Sending ICE candidates
@@ -480,7 +487,8 @@ This builds an object containing the candidate, then sends it to the other peer
The format of this message (as is the case with everything you do when handling signaling) is entirely up to you, depending on your needs; you can provide other information as required.
-> **メモ:** It's important to keep in mind that the {{domxref("RTCPeerConnection.icecandidate_event", "icecandidate")}} event is **not** sent when ICE candidates arrive from the other end of the call. Instead, they're sent by your own end of the call so that you can take on the job of transmitting the data over whatever channel you choose. This can be confusing when you're new to WebRTC.
+> [!NOTE]
+> It's important to keep in mind that the {{domxref("RTCPeerConnection.icecandidate_event", "icecandidate")}} event is **not** sent when ICE candidates arrive from the other end of the call. Instead, they're sent by your own end of the call so that you can take on the job of transmitting the data over whatever channel you choose. This can be confusing when you're new to WebRTC.
##### Receiving ICE candidates
@@ -632,7 +640,8 @@ function handleICEConnectionStateChangeEvent(event) {
Here, we apply our `closeVideoCall()` function when the ICE connection state changes to `"closed"` or `"failed"`. This handles shutting down our end of the connection so that we're ready start or accept a call once again.
-> **メモ:** We don't watch the `disconnected` signaling state here as it can indicate temporary issues and may go back to a `connected` state after some time. Watching it would close the video call on any temporary network issue.
+> [!NOTE]
+> We don't watch the `disconnected` signaling state here as it can indicate temporary issues and may go back to a `connected` state after some time. Watching it would close the video call on any temporary network issue.
##### ICE signaling state
@@ -648,7 +657,8 @@ function handleSignalingStateChangeEvent(event) {
}
```
-> **メモ:** The `closed` signaling state has been deprecated in favor of the `closed` {{domxref("RTCPeerConnection.iceConnectionState", "iceConnectionState")}}. We are watching for it here to add a bit of backward compatibility.
+> [!NOTE]
+> The `closed` signaling state has been deprecated in favor of the `closed` {{domxref("RTCPeerConnection.iceConnectionState", "iceConnectionState")}}. We are watching for it here to add a bit of backward compatibility.
##### ICE gathering state
diff --git a/files/ja/web/api/websocket/close/index.md b/files/ja/web/api/websocket/close/index.md
index b47d47183dadab..52ce0a2863a5c6 100644
--- a/files/ja/web/api/websocket/close/index.md
+++ b/files/ja/web/api/websocket/close/index.md
@@ -10,7 +10,8 @@ l10n:
**`WebSocket.close()`** メソッドは、 {{domxref("WebSocket")}} の接続、もしくは接続試行(存在した場合)を閉じます。接続がすでに `CLOSED` だった場合、このメソッドは何もしません。
-> **メモ:** 接続を閉じるプロセスは[クロージングハンドシェイク](https://www.rfc-editor.org/rfc/rfc6455.html#section-1.4)で始まり、 `close()` メソッドはそのクロージングハンドシェイクを開始する前に以前に送信したメッセージを破棄しません。たとえユーザーエージェントがまだそれらのメッセージを送信するのに忙しい場合でも、ハンドシェイクはメッセージが送信されてから開始されます。
+> [!NOTE]
+> 接続を閉じるプロセスは[クロージングハンドシェイク](https://www.rfc-editor.org/rfc/rfc6455.html#section-1.4)で始まり、 `close()` メソッドはそのクロージングハンドシェイクを開始する前に以前に送信したメッセージを破棄しません。たとえユーザーエージェントがまだそれらのメッセージを送信するのに忙しい場合でも、ハンドシェイクはメッセージが送信されてから開始されます。
## 構文
diff --git a/files/ja/web/api/websockets_api/index.md b/files/ja/web/api/websockets_api/index.md
index d0851af9b2833d..00ede1d0bb0e6c 100644
--- a/files/ja/web/api/websockets_api/index.md
+++ b/files/ja/web/api/websockets_api/index.md
@@ -9,7 +9,8 @@ l10n:
**WebSocket API** は、ユーザーのブラウザーとサーバー間で対話的な通信セッションを開くことができる先進技術です。この API によって、サーバーにメッセージを送信したり、応答をサーバーにポーリングすることなく、イベント駆動型のレスポンスを受信したりすることができます。
-> **メモ:** WebSocket のコネクションは機能的にどこか標準 Unix スタイルのソケットに似ていますが、関連はありません。
+> [!NOTE]
+> WebSocket のコネクションは機能的にどこか標準 Unix スタイルのソケットに似ていますが、関連はありません。
## インターフェイス
diff --git a/files/ja/web/api/websockets_api/writing_a_websocket_server_in_java/index.md b/files/ja/web/api/websockets_api/writing_a_websocket_server_in_java/index.md
index 885a436beb246d..6d98158bb72a33 100644
--- a/files/ja/web/api/websockets_api/writing_a_websocket_server_in_java/index.md
+++ b/files/ja/web/api/websockets_api/writing_a_websocket_server_in_java/index.md
@@ -133,7 +133,8 @@ if (get.find()) {
2 番目のバイトから 128 を引いた値が 0 〜 125 の場合、これはメッセージの長さです。 126 の場合は、次の 2 バイト (16 ビット符号なし整数)、127 の場合、次の 8 バイト (64 ビット符号なし整数、最上位ビットは 0 でなければならない) が長さです。
- > **メモ:** 最初のビットは常に 1 なので、 128 を取ることができます。
+ > [!NOTE]
+ > 最初のビットは常に 1 なので、 128 を取ることができます。
- 167、225、225、および 210 はデコードするキーのバイトです。それは毎回変わります。
diff --git a/files/ja/web/api/websockets_api/writing_websocket_client_applications/index.md b/files/ja/web/api/websockets_api/writing_websocket_client_applications/index.md
index 9698af090f6b63..84fe25f66a63b5 100644
--- a/files/ja/web/api/websockets_api/writing_websocket_client_applications/index.md
+++ b/files/ja/web/api/websockets_api/writing_websocket_client_applications/index.md
@@ -9,7 +9,8 @@ l10n:
WebSocket クライアントアプリケーションは [WebSocket API](/ja/docs/Web/API/WebSockets_API) を使用して、 WebSocket プロトコルを経由して [WebSocket サーバー](/ja/docs/Web/API/WebSockets_API/Writing_WebSocket_servers)と通信します。
-> **メモ:** この記事のサンプルスニペットは WebSocket チャットクライアント/サーバーサンプルから取得したものです。
+> [!NOTE]
+> この記事のサンプルスニペットは WebSocket チャットクライアント/サーバーサンプルから取得したものです。
> [コードはこちらからご覧ください](https://github.com/mdn/samples-server/tree/master/s/websocket-chat)。
## WebSocket オブジェクトの作成
diff --git a/files/ja/web/api/websockets_api/writing_websocket_server/index.md b/files/ja/web/api/websockets_api/writing_websocket_server/index.md
index 9a957d6e48c369..32421c12f3537a 100644
--- a/files/ja/web/api/websockets_api/writing_websocket_server/index.md
+++ b/files/ja/web/api/websockets_api/writing_websocket_server/index.md
@@ -15,7 +15,8 @@ WebSocket API を使用したい場合は、サーバーを所有していると
WebSocket は [TCP (伝送制御プロトコル)](http://en.wikipedia.org/wiki/Transmission_Control_Protocol) 接続を介して通信します。幸いにも、C# には [TcpListener](https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.tcplistener?view=net-6.0) クラスがあり、その名前が示すようにします。これは System.Net.Sockets 名前空間にあります。
-> **メモ:** 書く量を減らすために名前空間を `using` キーワードに含めることをお勧めします。毎回完全な名前空間を入力することなく、名前空間のクラスを使用できます。
+> [!NOTE]
+> 書く量を減らすために名前空間を `using` キーワードに含めることをお勧めします。毎回完全な名前空間を入力することなく、名前空間のクラスを使用できます。
### TcpListener
@@ -193,7 +194,8 @@ if (new System.Text.RegularExpressions.Regex("^GET").IsMatch(data))
- MASK ビット: "ペイロードデータ" がマスクされているかどうかを定義します。1 に設定すると、マスキングキーが Masking-Key にあり、これは "ペイロードデータ" のマスクを解除するために使用されます。クライアントからサーバーへのすべてのメッセージはこのビットが設定されています。
- ペイロードの長さ: この値が 0〜125 の場合、メッセージの長さになります。 126 の場合、次の 2 バイト (16 ビットの符号なし整数) が長さになります。127 の場合、次の 8 バイト (64ビットの符号なし整数) が長さになります。
-> **メモ:** 最初のビットはクライアントからサーバーへのメッセージでは常に 1 なので、このバイトから 128 を引いて MASK ビットを取り除くことができます。
+> [!NOTE]
+> 最初のビットはクライアントからサーバーへのメッセージでは常に 1 なので、このバイトから 128 を引いて MASK ビットを取り除くことができます。
メッセージに MASK ビットが設定されていることに注意してください。これは次の 4 バイト (61、84、35、6) がメッセージのデコードに使用されるマスクバイトであることを意味します。これらのバイトはすべてのメッセージとともに変化します。
diff --git a/files/ja/web/api/websockets_api/writing_websocket_servers/index.md b/files/ja/web/api/websockets_api/writing_websocket_servers/index.md
index 99106db78f38b5..74ea53234cfc31 100644
--- a/files/ja/web/api/websockets_api/writing_websocket_servers/index.md
+++ b/files/ja/web/api/websockets_api/writing_websocket_servers/index.md
@@ -13,7 +13,8 @@ WebSocket サーバーは、 [Berkeley sockets](https://en.wikipedia.org/wiki/Be
この記事は、既に {{Glossary("HTTP")}} の仕組みに精通しており、中程度のプログラミング経験があることを前提に書かれています。言語によっては、 TCP ソケットの知識が必要な場合があります。このガイドの範囲は、 WebSocket サーバーを書くために必要な最小限の知識を提示することです。
-> **メモ:** 最新の公式 WebSockets 仕様である [RFC 6455](https://datatracker.ietf.org/doc/rfc6455/?include_text=1) を参照してください。第 1 章と第 4-7 章はサーバー実装者にとって特に興味深いものです。第 10 章ではセキュリティについて説明しています。サーバーを公開する前にセキュリティを正しく理解する必要があります。
+> [!NOTE]
+> 最新の公式 WebSockets 仕様である [RFC 6455](https://datatracker.ietf.org/doc/rfc6455/?include_text=1) を参照してください。第 1 章と第 4-7 章はサーバー実装者にとって特に興味深いものです。第 10 章ではセキュリティについて説明しています。サーバーを公開する前にセキュリティを正しく理解する必要があります。
ここでは WebSocket サーバーについて非常に低水準で説明しています。WebSocket サーバーは多くの場合、[リバースプロキシー](https://ja.wikipedia.org/wiki/リバースプロキシ)(通常の HTTP サーバーなど)を使用して WebSocket ハンドシェイクを検出、事前処理し、それらのクライアントを実際の WebSocket サーバーに送信します。つまり、(例えば)クッキーと認証ハンドラーを使用してサーバー側のコードを膨らませる必要はありません。
@@ -21,11 +22,13 @@ WebSocket サーバーは、 [Berkeley sockets](https://en.wikipedia.org/wiki/Be
まず、サーバーは標準の TCP ソケットを使用して着信ソケット接続を待ち受ける必要があります。プラットフォームによっては、すでに処理されている可能性があります。たとえば、サーバーが `example.com`、 8000 番ポートで待ち受けしているとし、ソケットサーバーが `example.com/chat` に対する {{HTTPMethod("GET")}} リクエストに応答したとします。
-> **警告:** サーバーは選択したポートで待ち受けしますが、80 または 443 以外のポートを選択すると、ファイアウォールやプロキシーの問題が発生する可能性があります。ブラウザーは WebSocket の接続に安全な接続を必要としますが、ローカル機器では例外を設けている可能性があります。
+> [!WARNING]
+> サーバーは選択したポートで待ち受けしますが、80 または 443 以外のポートを選択すると、ファイアウォールやプロキシーの問題が発生する可能性があります。ブラウザーは WebSocket の接続に安全な接続を必要としますが、ローカル機器では例外を設けている可能性があります。
ハンドシェイクは WebSockets の "Web" です。それは HTTP から WS への橋渡しです。ハンドシェイクでは、接続の詳細がネゴシエートされ、いずれの当事者も条件が悪い場合には完了前に取り消すことができます。 サーバーはクライアントがリクエストするすべてのものを理解するように注意する必要があります。そうしないとセキュリティの問題が発生します。
-> **メモ:** request-uri (ここでは `/chat`)の意味は仕様書では定義されていません。多くの人がこれを使用して、 1 つのサーバーが複数の WebSocket アプリケーションを処理できるようにします。たとえば、`example.com/chat` はマルチユーザチャットアプリを呼び出すことができ、同じサーバーの `/game` はマルチプレイヤーゲームを呼び出すことができるようにするなどです。
+> [!NOTE]
+> request-uri (ここでは `/chat`)の意味は仕様書では定義されていません。多くの人がこれを使用して、 1 つのサーバーが複数の WebSocket アプリケーションを処理できるようにします。たとえば、`example.com/chat` はマルチユーザチャットアプリを呼び出すことができ、同じサーバーの `/game` はマルチプレイヤーゲームを呼び出すことができるようにするなどです。
### クライアントハンドシェイクリクエスト
@@ -42,7 +45,8 @@ Sec-WebSocket-Version: 13
クライアントはここで拡張子やサブプロトコルを求めることができます。詳細は「[その他](#その他)」を参照してください。また {{HTTPHeader("User-Agent")}}、{{HTTPHeader("Referer")}}、{{HTTPHeader("Cookie")}}、認証ヘッダーなどの一般的なヘッダーも存在する可能性があります。これらに対しては何をしても構いません。 WebSocket には直接関係しません。それらを無視することも安全です。多くの一般的な設定では、リバースプロキシーは既にそれらを処理しています。
-> **メモ:** すべての**ブラウザー**は [`Origin` ヘッダー](/ja/docs/Web/HTTP/CORS#origin)を送信します。このヘッダーをセキュリティ(同一オリジンのチェック、ホワイトリスト/ブラックリストなど) に使用し、見せたくなければ [403 Forbidden](/ja/docs/Web/HTTP/Status#403) を送ることができます。ただし、ブラウザー以外のエージェントは、偽の `Origin` を送信するだけであることに注意してください。ほとんどのアプリケーションは、このヘッダーのないリクエストを拒否します。
+> [!NOTE]
+> すべての**ブラウザー**は [`Origin` ヘッダー](/ja/docs/Web/HTTP/CORS#origin)を送信します。このヘッダーをセキュリティ(同一オリジンのチェック、ホワイトリスト/ブラックリストなど) に使用し、見せたくなければ [403 Forbidden](/ja/docs/Web/HTTP/Status#403) を送ることができます。ただし、ブラウザー以外のエージェントは、偽の `Origin` を送信するだけであることに注意してください。ほとんどのアプリケーションは、このヘッダーのないリクエストを拒否します。
ヘッダーが解釈されていないか値が正しくない場合、サーバーは {{HTTPStatus("400")}} ("Bad Request") を送信し、すぐにソケットを閉じる必要があります。通常は、HTTP レスポンス本体でハンドシェイクが失敗した理由を示すかもしれませんが、メッセージは表示されないかもしれません(ブラウザーは表示しません)。 サーバーが WebSocket のバージョンを認識しない場合、サーバーは解釈可能なバージョンを含む {{HTTPHeader("Sec-WebSocket-Version")}} ヘッダーを返す必要があります。上記の例では、 WebSocket プロトコル 13 版であることを示しています。
@@ -63,11 +67,13 @@ Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
さらに、サーバーはここで拡張/サブプロトコルのリクエストを決定することができます。詳しくは[その他](#その他)を参照してください。 `Sec-WebSocket-Accept` ヘッダーは、クライアントが送信した {{HTTPHeader("Sec-WebSocket-Key")}} からサーバーが導き出す必要がある点で重要です。これを得るには、クライアントの `Sec-WebSocket-Key` と "`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`" という文字列(これは「[マジック文字列](https://en.wikipedia.org/wiki/Magic_string)」)を連結して、その結果の [SHA-1 hash](https://en.wikipedia.org/wiki/SHA-1) をとり、そのハッシュの [base64](https://en.wikipedia.org/wiki/Base64) エンコーディング値を返せばいいのです。
-> **メモ:** この一見複雑すぎるプロセスは、サーバーが WebSocket に対応しているかどうかをクライアントに明らかにするために存在します。これは、サーバーが WebSockets 接続を受け入れても、データを HTTP リクエストとして解釈する場合にセキュリティ問題が発生する可能性があるため、重要なことです。
+> [!NOTE]
+> この一見複雑すぎるプロセスは、サーバーが WebSocket に対応しているかどうかをクライアントに明らかにするために存在します。これは、サーバーが WebSockets 接続を受け入れても、データを HTTP リクエストとして解釈する場合にセキュリティ問題が発生する可能性があるため、重要なことです。
したがって、 Key が "`dGhlIHNhbXBsZSBub25jZQ==`" だった場合、 Accept は "`s3pPLMBiTxaQ9kYGzzhZRbK+xOo=`" になります。サーバーがこれらのヘッダーを送信すると、ハンドシェイクは完了し、データのスワップを開始できます。
-> **メモ:** サーバーは、 {{HTTPHeader("Set-Cookie")}} のような他のヘッダーを送信したり、レスポンスハンドシェイクを送信する前に他のステータスコードで認証またはリダイレクトを要求したりすることができます。
+> [!NOTE]
+> サーバーは、 {{HTTPHeader("Set-Cookie")}} のような他のヘッダーを送信したり、レスポンスハンドシェイクを送信する前に他のステータスコードで認証またはリダイレクトを要求したりすることができます。
### クライアントの追跡
@@ -159,7 +165,8 @@ Server: (process complete message) Happy new year to you too!
ping や pong は単なる通常のフレームですが、**制御フレーム**です。ping のオペコードは `0x9`、pong のオペコードは `0xA` です。ping を取得したら、ping と同じペイロードデータを持つ pong を送ります(ping と pong の場合、最大ペイロード長は 125 です)。ping を送信することなく pong を取得することもできます。その場合はこれを無視してください。
-> **メモ:** pong を送信する機会を得る前に複数の ping を受信した場合でも、送信する pong は 1 つだけです。
+> [!NOTE]
+> pong を送信する機会を得る前に複数の ping を受信した場合でも、送信する pong は 1 つだけです。
## 接続を閉じる
@@ -167,7 +174,8 @@ ping や pong は単なる通常のフレームですが、**制御フレーム*
## その他
-> **メモ:** WebSocket のコード、拡張機能、サブプロトコルなどは、[IANA WebSocket プロトコルレジストリー](https://www.iana.org/assignments/websocket/websocket.xml)に登録されています。
+> [!NOTE]
+> WebSocket のコード、拡張機能、サブプロトコルなどは、[IANA WebSocket プロトコルレジストリー](https://www.iana.org/assignments/websocket/websocket.xml)に登録されています。
WebSocket の拡張機能とサブプロトコルは、ハンドシェイク中にヘッダーを介して交渉されます。拡張機能とサブプロトコルはとても似ていますが、明確な区別があります。拡張機能は WebSocket **フレーム**を制御し、ペイロードを**変更**しますが、サブプロトコルは WebSocket **ペイロード**を構造化し、**何も変更しません**。拡張機能は任意のもので一般化されています(圧縮など)。サブプロトコルは必須のもので、ローカライズされています(チャットや MMORPG ゲームなど)。
@@ -175,13 +183,15 @@ WebSocket の拡張機能とサブプロトコルは、ハンドシェイク中
拡張機能はファイルを誰かに電子メールで送る前に圧縮していると考えてください。あなたが何をしても、同じデータをさまざまな形で送信しています。受信者は最終的にローカルコピーと同じデータを得ることができますが、別の方法で送信されます。それが拡張機能の機能です。 WebSockets はプロトコルとデータを送信する簡単な方法を定義しますが、圧縮などの拡張機能では同じデータを短い形式で送信することができます。
-> **メモ:** 拡張機能については、仕様書の 5.8, 9, 11.3.2, 11.4 節で説明しています。
+> [!NOTE]
+> 拡張機能については、仕様書の 5.8, 9, 11.3.2, 11.4 節で説明しています。
### サブプロトコル
サブプロトコルをカスタム [XML スキーマ](https://en.wikipedia.org/wiki/XML_schema)または [doctype 宣言](https://en.wikipedia.org/wiki/Document_Type_Definition)と考えてください。あなたはまだ XML とその構文を使用していますが、あなたが合意した構造によってさらに制限されます。WebSocket のサブプロトコルはまさにそのようなものです。それらは空想的な何かを導入しておらず、構造を確立するだけです。doctype やスキーマと同様に、両者はサブプロトコルに同意しなければなりません。doctype やスキーマとは異なり、サブプロトコルはサーバー上に実装されており、クライアントから外部参照することはできません。
-> **メモ:** サブプロトコルは、仕様のセクション 1.9、4.2、11.3.4、11.5 で説明されています。
+> [!NOTE]
+> サブプロトコルは、仕様のセクション 1.9、4.2、11.3.4、11.5 で説明されています。
クライアントは特定のサブプロトコルを要求する必要があります。 これを行うには、**元のハンドシェイクの一部として**次のようなものを送ります。
@@ -205,12 +215,14 @@ Sec-WebSocket-Protocol: wamp
Sec-WebSocket-Protocol: soap
```
-> **警告:** サーバーは複数の `Sec-Websocket-Protocol` ヘッダーを送信できません。
+> [!WARNING]
+> サーバーは複数の `Sec-Websocket-Protocol` ヘッダーを送信できません。
> サーバーがサブプロトコルを使用したくない場合、 **`Sec-WebSocket-Protocol` ヘッダーを送信してはいけません**。空白のヘッダーを送信するのは間違いです。クライアントは、必要なサブプロトコルを取得できない場合に接続を閉じることがあります。
サーバーが特定のサブプロトコルに従うようにしたいのであれば、必然的にサーバー上に特別なコードが必要になります。 `json` サブプロトコルを使用しているとしましょう。このサブプロトコルではすべてのデータが [JSON](https://en.wikipedia.org/wiki/JSON) として渡されます。クライアントがこのプロトコルを要求し、サーバーがそれを使用したい場合、サーバーは JSON パーサーを持つ必要があります。実際に言えば、これはライブラリの一部になりますが、サーバーはデータを渡す必要があります。
-> **メモ:** 名前の競合を避けるため、サブプロトコル名をドメイン文字列の一部にすることをお勧めします。Example Inc. 専用の独自の形式を使用するカスタムチャットアプリを構築する場合は、次のように使用します: `Sec-WebSocket-Protocol: chat.example.com`。これは必須ではないことに注意してください。これは単なるオプションです。任意の文字列を使用できます。
+> [!NOTE]
+> 名前の競合を避けるため、サブプロトコル名をドメイン文字列の一部にすることをお勧めします。Example Inc. 専用の独自の形式を使用するカスタムチャットアプリを構築する場合は、次のように使用します: `Sec-WebSocket-Protocol: chat.example.com`。これは必須ではないことに注意してください。これは単なるオプションです。任意の文字列を使用できます。
## 関連情報
diff --git a/files/ja/web/api/webvr_api/concepts/index.md b/files/ja/web/api/webvr_api/concepts/index.md
index f6e75083aa495c..adaeb81b5e894c 100644
--- a/files/ja/web/api/webvr_api/concepts/index.md
+++ b/files/ja/web/api/webvr_api/concepts/index.md
@@ -7,7 +7,8 @@ l10n:
{{APIRef("WebVR API")}}{{deprecated_header}}
-> **メモ:** WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
+> [!NOTE]
+> WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
この文書は、バーチャルリアリティ (VR) の背景にある概念と理論について述べています。もしあなたがこの分野の初学者なら、コードを書き始める前に、これらのトピックを理解すると役に立つでしょう。
@@ -40,7 +41,8 @@ VR アプリケーションの入力を扱うことは興味深いトピック
- モバイル: Google Cardboard のように VR マウントにスマートフォン — スマートフォンは VR ディスプレイとして機能する — をマウントして作られるヘッドマウントディスプレイ (HMD) で、モバイルスクリーンをステレオビジョンへ投影するのに必要なレンズが含まれています。![Mobile based VR setup](mobilebasedvrsetup.png)
- コンピュータ接続: コンピュータに接続する VR セットアップです — 右目と左目の両方に表示される映像を映す高解像度の横向きスクリーンを持つ HMD で構成されています。HMD は右目と左目のシーン(ステレオビジョン)を分割するためのレンズも備えています。セットアップは分離型の位置センサも含まれています。位置センサは頭の位置/向き/速度/加速度を取得して、コンピュータへ絶えずその情報を渡します。 ![Computer based VR Setup](computerbasedvrsetup.png)
-> **メモ:** コンピュータ接続システムは位置センサーを含んでいない場合もありますが、通常は含まれています。
+> [!NOTE]
+> コンピュータ接続システムは位置センサーを含んでいない場合もありますが、通常は含まれています。
その他の VR 体験を補うハードウェア:
@@ -86,11 +88,13 @@ FOV は次の値で定義されています:
- zNear {{domxref("VRDisplay.depthNear")}}: ユーザの頭の中央から FOV の可視範囲開始まで距離。
- zFar {{domxref("VRDisplay.depthFar")}}: ユーザの頭の中央から FOV の可視範囲末端までの距離。
-> **メモ:** The user can potentially see all the way around them, which is a brand new concept for apps and games. Try to give people a reason to look around and see what's behind them — make them reach out and find things that are not visible at the very beginning. Describe what's behind their backs.
+> [!NOTE]
+> The user can potentially see all the way around them, which is a brand new concept for apps and games. Try to give people a reason to look around and see what's behind them — make them reach out and find things that are not visible at the very beginning. Describe what's behind their backs.
これらのプロパティのデフォルト値は、VR ハードウェアによって微妙に異なりますが、上下方向は 53°、左右方向は 47°、zNear と zFar はそれぞれ 0.1m から 10000m くらいになっています。
-> **メモ:** ユーザは潜在的に周囲全体を見渡すことができます。それはまったく新しいアプリやゲームのコンセプトです。人々が見回したり背後にある何かを見たりする理由を与えることにトライしてみましょう — 最初は見えていないものを見つける手助けをしてあげてください。背後になにがあるか説明しましょう。
+> [!NOTE]
+> ユーザは潜在的に周囲全体を見渡すことができます。それはまったく新しいアプリやゲームのコンセプトです。人々が見回したり背後にある何かを見たりする理由を与えることにトライしてみましょう — 最初は見えていないものを見つける手助けをしてあげてください。背後になにがあるか説明しましょう。
## VR アプリのための概念
diff --git a/files/ja/web/api/webvr_api/index.md b/files/ja/web/api/webvr_api/index.md
index 7e7480d2df0631..fb69a9ab2f1f57 100644
--- a/files/ja/web/api/webvr_api/index.md
+++ b/files/ja/web/api/webvr_api/index.md
@@ -7,7 +7,8 @@ l10n:
{{DefaultAPISidebar("WebVR API")}}{{Deprecated_Header}}{{Non-standard_header}}
-> **メモ:** WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
+> [!NOTE]
+> WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
WebVR は、バーチャルリアリティデバイス — 例えば Oculus Rift のようなヘッドマウントディスプレイ — をウェブアプリへ公開し、ヘッドマウントディスプレイの位置や動きを 3D 空間上の動きへと変換する手助けを行います。これによって、バーチャルな製品紹介やインタラクティブな訓練アプリといったものから超臨場感のファーストパーソン・シューティングゲームといったものまで、非常に面白い様々なアプリケーションをつくることができます。
diff --git a/files/ja/web/api/webvr_api/using_the_webvr_api/index.md b/files/ja/web/api/webvr_api/using_the_webvr_api/index.md
index c9f07c7261462b..3513db415cc426 100644
--- a/files/ja/web/api/webvr_api/using_the_webvr_api/index.md
+++ b/files/ja/web/api/webvr_api/using_the_webvr_api/index.md
@@ -7,7 +7,8 @@ l10n:
{{APIRef("WebVR API")}}{{deprecated_header}}
-> **メモ:** WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
+> [!NOTE]
+> WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
WebVR API はウェブ開発者のツールキットへのすばらしい追加機能で、 Oculus Rift のようなバーチャルリアリティハードウェアへのアクセスが可能となります。そして出力された動きや向きはウェブアプリの描画更新に変換されます。しかし VR アプリを開発はどのようにやればいいのでしょうか? この記事では、それに関する基礎的な解説を行います。
@@ -35,7 +36,8 @@ WebVR API がどのように動作するのかを説明するために、次の
> **メモ:** [このデモのソースコード](https://github.com/mdn/webvr-tests/tree/main/webvr/raw-webgl-example) は GitHub で、[ライブで見ることができます](https://mdn.github.io/webvr-tests/webvr/raw-webgl-example/) also.
-> **メモ:** ブラウザーで WebVR が動作しない場合、グラフィックカードを通して実行しているかどうかを確認する必要がある場合があります。例えば NVIDIA のカードの場合、 NVIDIA コントロールパネルが正常に設定されていれば、利用できるコンテキストメニューオプションがあります - Firefox を右クリックし、 _Run with graphics processor > High-performance NVIDIA processor_ を選んでください。
+> [!NOTE]
+> ブラウザーで WebVR が動作しない場合、グラフィックカードを通して実行しているかどうかを確認する必要がある場合があります。例えば NVIDIA のカードの場合、 NVIDIA コントロールパネルが正常に設定されていれば、利用できるコンテキストメニューオプションがあります - Firefox を右クリックし、 _Run with graphics processor > High-performance NVIDIA processor_ を選んでください。
このデモでは、WebGL のデモの聖杯である、回転する 3D 立方体を扱っています。私たちはこれを生の [WebGL API](/ja/docs/Web/API/WebGL_API) コードを使用して実装しています。基本的な JavaScript や WebGL は一切教えず、WebVR の部分のみを教える予定です。
@@ -46,7 +48,8 @@ WebVR API がどのように動作するのかを説明するために、次の
このデモのメインの [JavaScript ファイル](https://github.com/mdn/webvr-tests/blob/main/webvr/raw-webgl-example/webgl-demo.js)のソースコードを見ていくと、先行するコメントで "WebVR" という文字列を探せば、簡単に WebVR に特化した部分を見つけることができます。
-> **メモ:** 基本的な JavaScript と WebGL については、 [JavaScript 学習素材](/ja/docs/Learn/JavaScript)、[WebGL チュートリアル](/ja/docs/Web/API/WebGL_API/Tutorial)を参照してください。
+> [!NOTE]
+> 基本的な JavaScript と WebGL については、 [JavaScript 学習素材](/ja/docs/Learn/JavaScript)、[WebGL チュートリアル](/ja/docs/Web/API/WebGL_API/Tutorial)を参照してください。
## アプリはどう動くか
@@ -152,7 +155,8 @@ drawScene();
console.log('Display found');
```
-> **メモ:** コンピューターに複数の VR ディスプレイを保有することはまずないでしょうし、このデモでは単純なものなので、とりあえずはこれで大丈夫でしょう。
+> [!NOTE]
+> コンピューターに複数の VR ディスプレイを保有することはまずないでしょうし、このデモでは単純なものなので、とりあえずはこれで大丈夫でしょう。
### VR 表示の開始と停止
diff --git a/files/ja/web/api/webvr_api/using_vr_controllers_with_webvr/index.md b/files/ja/web/api/webvr_api/using_vr_controllers_with_webvr/index.md
index c9e659ea631360..0b7e86478608f3 100644
--- a/files/ja/web/api/webvr_api/using_vr_controllers_with_webvr/index.md
+++ b/files/ja/web/api/webvr_api/using_vr_controllers_with_webvr/index.md
@@ -9,7 +9,8 @@ l10n:
多くの WebVR ハードウェアは、ヘッドセットとゲームパッドがセットになっています。WebVR アプリにおいては、ヘッドセットとゲームパッドは[ゲームパッド API](/ja/docs/Web/API/Gamepad_API)を通じて接続されます。中でも、[ゲームパッド拡張 API](/ja/docs/Web/API/Gamepad_API#experimental_gamepad_extensions) は、ゲームパッドの状態([controller pose](/ja/docs/Web/API/GamepadPose))、触覚アクチュエータ([haptic actuators](/ja/docs/Web/API/GamepadHapticActuator))などの情報を取得します。この記事では、その基礎となる部分を解説します。
-> **メモ:** WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
+> [!NOTE]
+> WebVR API は [WebXR API](/ja/docs/Web/API/WebXR_Device_API) に置き換えられました。 WebVR は標準として批准されることはなく、ごく少数のブラウザーでしか既定で実装・有効化されず、少数の端末しか対応していませんでした。
## WebVR API
diff --git a/files/ja/web/api/webxr_device_api/cameras/index.md b/files/ja/web/api/webxr_device_api/cameras/index.md
index 9da19c81a884df..1542027bdc3223 100644
--- a/files/ja/web/api/webxr_device_api/cameras/index.md
+++ b/files/ja/web/api/webxr_device_api/cameras/index.md
@@ -141,7 +141,8 @@ let matrixArray = [
ほとんどの WebGL および WebXR のプログラミングは、サードパーティライブラリを使用して行われることを覚えておいてください。 サードパーティライブラリは、コアとなる行列やその他の操作だけでなく、多くの場合、これらの標準的な映画撮影手法のシミュレーションをより簡単にするルーチンを追加することにより、WebGL の基本機能を拡張します。 WebGL を直接使用するのではなく、その 1 つを使用することを強くお勧めします。 このガイドでは WebGL を直接使用しています。 これは、その裏で何が行われているのかをある程度理解し、ライブラリの開発を支援したり、コードを最適化するのに役立つためです。
-> **メモ:** 「カメラを動かす」などのフレーズを使用していますが、実際に行っているのは、カメラの周りの世界全体を動かすことです。 これは、特定の値が機能する方法に影響を与えます。 これらの値については、後で説明します。
+> [!NOTE]
+> 「カメラを動かす」などのフレーズを使用していますが、実際に行っているのは、カメラの周りの世界全体を動かすことです。 これは、特定の値が機能する方法に影響を与えます。 これらの値については、後で説明します。
### ズーム
diff --git a/files/ja/web/api/webxr_device_api/geometry/index.md b/files/ja/web/api/webxr_device_api/geometry/index.md
index 1a821ab1f8cc07..36b1831d63676d 100644
--- a/files/ja/web/api/webxr_device_api/geometry/index.md
+++ b/files/ja/web/api/webxr_device_api/geometry/index.md
@@ -44,7 +44,8 @@ let radiansToDegrees = (rad) => rad / RADIANS_PER_DEGREE;
#### 時刻と持続時間
-> **メモ:** セキュリティ上の理由から、`DOMHighResTimeStamp` は通常、[フィンガープリント](/ja/docs/Glossary/Fingerprinting)やタイミングベースの攻撃で使用されないようにするために、クロックに少しの不正確さを導入します。
+> [!NOTE]
+> セキュリティ上の理由から、`DOMHighResTimeStamp` は通常、[フィンガープリント](/ja/docs/Glossary/Fingerprinting)やタイミングベースの攻撃で使用されないようにするために、クロックに少しの不正確さを導入します。
WebXR のすべての時刻と持続時間は、 {{domxref("DOMHighResTimeStamp")}} 型を使用して測定します。 これは、開始時刻を基準にミリ秒単位で時刻を指定する倍精度浮動小数点値です。 値は浮動小数点数であるため、プラットフォームとハードウェアによっては、ミリ秒レベルよりも正確である場合があります。
@@ -68,7 +69,8 @@ XR で表現されたシーンは、仮想であれ拡張であれ、 1 から
したがって、それは空間感覚を作り出すことがすべてです。 XR 開発者の観点から見ると、ステージの設計はユーザーにとって最も重要な部分です。 建築家やセットデザイナーのように、あなたは物理的な環境を通して気分や体験を生み出す力を持っています。 その空間をどのように構築するかは、ユーザーがどのように対話して探索できるかに依存し、影響を与えます。
-> **メモ:** 空間には通常、前景、中距離、背景の要素があります。 適切なバランスは、ユニークな存在感を生み出し、ユーザーを導くことができます。 前景には、直接対話できるオブジェクトとインターフェイスが含まれています。 中距離には、ある程度対話できるオブジェクト、またはより密接に調査して関与するために近づくことができるオブジェクトが含まれます。 一方、背景は通常、少なくともユーザーが中距離または前景の範囲に移動して近づくことができない限り、ほとんどまたは完全に非対話です。
+> [!NOTE]
+> 空間には通常、前景、中距離、背景の要素があります。 適切なバランスは、ユニークな存在感を生み出し、ユーザーを導くことができます。 前景には、直接対話できるオブジェクトとインターフェイスが含まれています。 中距離には、ある程度対話できるオブジェクト、またはより密接に調査して関与するために近づくことができるオブジェクトが含まれます。 一方、背景は通常、少なくともユーザーが中距離または前景の範囲に移動して近づくことができない限り、ほとんどまたは完全に非対話です。
WebXR では、(シーンが起こる座標空間など)**空間** (space) の基本的な概念は、{{domxref("XRSpace")}} のインスタンスによって表されます。 この空間は、ユーザーの環境内のオブジェクトと(光源やカメラなど)他のエンティティの相対位置と動きを決定するために使用します。
@@ -169,7 +171,8 @@ WebXR を使用して、アノテーションによる世界の拡張から 360
XR セッションは、{{domxref("XRSystem.requestSession", "navigator.xr.requestSession()")}} メソッドを使用して作成します。 オプションの引数の 1 つは、{{domxref("XRSessionInit")}} 辞書に準拠したオブジェクトであり、これを使用して、セッションが対応する必要がある(または理想的には対応すべき)必須またはオプションの機能を指定できます。 現在対応しているオプションは、標準参照空間を識別する文字列のみです。 これらを使用すると、コードを実行する前に、必要な、または優先する参照空間型をに対応できる WebXR セッションにアクセスできることを保証できます。
-> **メモ:** 現在、{{domxref("XRSession")}} を作成するときに使用できるオプションは、使用または優先する参照空間のみです。 将来的には、より多くのオプションが利用可能になる可能性があります。
+> [!NOTE]
+> 現在、{{domxref("XRSession")}} を作成するときに使用できるオプションは、使用または優先する参照空間のみです。 将来的には、より多くのオプションが利用可能になる可能性があります。
## オブジェクトの配置と方向付け
diff --git a/files/ja/web/api/webxr_device_api/movement_and_motion/index.md b/files/ja/web/api/webxr_device_api/movement_and_motion/index.md
index 6dac80c0299aa6..1bab195c5d522b 100644
--- a/files/ja/web/api/webxr_device_api/movement_and_motion/index.md
+++ b/files/ja/web/api/webxr_device_api/movement_and_motion/index.md
@@ -60,7 +60,8 @@ const MOUSE_SPEED = 0.003;
- `MOVE_DISTANCE`
- : シーン内でビューアーを移動するために使用するキーのいずれかに応答して移動する距離。
-> **メモ:** この例では、`immersive-vr` モードを使用している場合でも、常に画面にレンダリングされる内容が表示されます。 これにより、2 つのモード間のレンダリングの違いを比較でき、ヘッドセットがない場合でも没入型モードからの出力を確認できます。
+> [!NOTE]
+> この例では、`immersive-vr` モードを使用している場合でも、常に画面にレンダリングされる内容が表示されます。 これにより、2 つのモード間のレンダリングの違いを比較でき、ヘッドセットがない場合でも没入型モードからの出力を確認できます。
## セットアップおよびユーティリティ関数
@@ -471,7 +472,8 @@ function drawFrame(time, frame) {
`drawFrame()` 関数は、{{domxref("XRViewerPose")}} で見つかったすべてのビューを反復処理し、ビューのビューポートを設定し、`renderScene()` を呼び出してフレームをレンダリングすることで終了します。 各ビューのビューポートを設定することにより、各目のビューがそれぞれ WebGL フレームの半分にレンダリングされる典型的なシナリオを処理します。 次に、XR ハードウェアは、各目がその目向けの画像の部分のみを表示するように処理します。
-> **メモ:** この例では、XR デバイスと画面の両方にフレームを視覚的に表示しています。 画面上のキャンバスがこれを実行できる適切なサイズであることを確認するために、その幅を個々の {{domxref("XRView")}} の幅にビューの数を掛けたものに等しくなるように設定します。 キャンバスの高さは常にビューポートの高さと同じです。 キャンバスサイズを調整する 2 行のコードは、通常の WebXR レンダリングループでは必要ありません。
+> [!NOTE]
+> この例では、XR デバイスと画面の両方にフレームを視覚的に表示しています。 画面上のキャンバスがこれを実行できる適切なサイズであることを確認するために、その幅を個々の {{domxref("XRView")}} の幅にビューの数を掛けたものに等しくなるように設定します。 キャンバスの高さは常にビューポートの高さと同じです。 キャンバスサイズを調整する 2 行のコードは、通常の WebXR レンダリングループでは必要ありません。
### ユーザー入力の適用
diff --git a/files/ja/web/api/webxr_device_api/startup_and_shutdown/index.md b/files/ja/web/api/webxr_device_api/startup_and_shutdown/index.md
index 1cbd0693a03004..0e6eff082de999 100644
--- a/files/ja/web/api/webxr_device_api/startup_and_shutdown/index.md
+++ b/files/ja/web/api/webxr_device_api/startup_and_shutdown/index.md
@@ -264,7 +264,8 @@ async function runSession(session) {
この時点で、`XRSession` 自体が完全に構成されているため、レンダリングを開始できます。 まず、その世界の座標が記述される参照空間が必要です。 `XRSession` の {{domxref("XRSession.requestReferenceSpace", "requestReferenceSpace()")}} メソッドを呼び出すことにより、セッションの初期参照空間を取得できます。 `requestReferenceSpace()` を呼び出すときに、必要な参照空間のタイプの名前を指定します。 この場合、`unbounded` です。 ニーズに応じて、`local` または `viewer` を簡単に指定できます。
-> **メモ:** ニーズに合った適切な参照空間を選択する方法を理解するには、[WebXR の幾何学と参照空間](/ja/docs/Web/API/WebXR_Device_API/Geometry)の[参照空間タイプの選択](/ja/docs/Web/API/WebXR_Device_API/Geometry#Selecting_the_reference_space_type)を参照してください。
+> [!NOTE]
+> ニーズに合った適切な参照空間を選択する方法を理解するには、[WebXR の幾何学と参照空間](/ja/docs/Web/API/WebXR_Device_API/Geometry)の[参照空間タイプの選択](/ja/docs/Web/API/WebXR_Device_API/Geometry#Selecting_the_reference_space_type)を参照してください。
`requestReferenceSpace()` によって返される参照空間は、原点 (0, 0, 0) を空間の中心に配置します。 これは素晴らしいことです — プレイヤーの視点が世界の正確な中心から始まる場合は。 しかし、ほとんどの場合、そうではありません。 その場合は、最初の参照空間で {{domxref("XRReferenceSpace.getOffsetReferenceSpace", "getOffsetReferenceSpace()")}} を呼び出して、(0, 0, 0) がビューアーの位置に配置されるように[座標系をオフセット](/ja/docs/Web/API/WebXR_Device_API/Geometry#Establishing_the_reference_space)し、同様に顔を望ましい方向にシフトする*新しい*参照空間を作成します。 `getOffsetReferenceSpace()` への入力値は、デフォルトの世界座標で指定されたプレーヤーの位置と方向をカプセル化する {{domxref("XRRigidTransform")}} です。
diff --git a/files/ja/web/api/wgsllanguagefeatures/index.md b/files/ja/web/api/wgsllanguagefeatures/index.md
index f408dda6bd8f18..3d4ac2366f1022 100644
--- a/files/ja/web/api/wgsllanguagefeatures/index.md
+++ b/files/ja/web/api/wgsllanguagefeatures/index.md
@@ -11,7 +11,8 @@ l10n:
`WGSLLanguageFeatures` オブジェクトは {{domxref("GPU.wgslLanguageFeatures")}} プロパティ経由で参照します。
-> **メモ:** API をサポートしているすべてのブラウザーの WebGPU ですべての WGSL 言語の拡張が使えるわけではありません。使うことにした拡張をすべて徹底的にテストすることを推奨します。
+> [!NOTE]
+> API をサポートしているすべてのブラウザーの WebGPU ですべての WGSL 言語の拡張が使えるわけではありません。使うことにした拡張をすべて徹底的にテストすることを推奨します。
{{InheritanceDiagram}}
diff --git a/files/ja/web/api/wheelevent/index.md b/files/ja/web/api/wheelevent/index.md
index 5f18a61ba1f503..ab61aaa580c6e0 100644
--- a/files/ja/web/api/wheelevent/index.md
+++ b/files/ja/web/api/wheelevent/index.md
@@ -9,7 +9,8 @@ l10n:
**`WheelEvent`** インターフェイスは、ユーザーがマウスホイールやそれに似た機器を動かしたときに発行されるイベントを表します。
-> **メモ:** これは標準のホイールイベントインターフェイスです。古いバージョンのブラウザーは、標準外でブラウザー間の互換性のない `MouseWheelEvent` および {{DOMxRef("MouseScrollEvent")}} インターフェイスを実装していました。これらを避けて、このインターフェイスを使用してください。
+> [!NOTE]
+> これは標準のホイールイベントインターフェイスです。古いバージョンのブラウザーは、標準外でブラウザー間の互換性のない `MouseWheelEvent` および {{DOMxRef("MouseScrollEvent")}} インターフェイスを実装していました。これらを避けて、このインターフェイスを使用してください。
> **メモ:** {{domxref("Element/wheel_event", "wheel")}} イベントと {{domxref("Element/scroll_event", "scroll")}} イベントを混同しないでください。 `wheel` イベントの既定のアクションは実装固有のものです。したがって、 `wheel` イベントは必ずしも `scroll` イベントを発行するわけではありません。その場合でも、 `wheel` イベントの `delta*` 値は必ずしもコンテンツのスクロール方向を反映しているとは限りません。したがって、スクロールの方向を取得するために、 `wheel` イベントの `delta*` プロパティに頼らないようにしてください。代わりに、 `scroll` イベント内のターゲットの {{DOMxRef("Element.scrollLeft", "scrollLeft")}} や {{DOMxRef("Element.scrollTop", "scrollTop")}} の値の変化を検出するようにしてください。
diff --git a/files/ja/web/api/wheelevent/wheelevent/index.md b/files/ja/web/api/wheelevent/wheelevent/index.md
index c1227afb26297c..11c4942de4287d 100644
--- a/files/ja/web/api/wheelevent/wheelevent/index.md
+++ b/files/ja/web/api/wheelevent/wheelevent/index.md
@@ -10,7 +10,8 @@ l10n:
**`WheelEvent()`** コンストラクターは新しい {{domxref("WheelEvent")}} オブジェクトを返します。
-> **メモ:** このコンストラクターを使用して合成イベントを作成した場合、セキュリティ上の理由から、そのイベントは信頼されません。
+> [!NOTE]
+> このコンストラクターを使用して合成イベントを作成した場合、セキュリティ上の理由から、そのイベントは信頼されません。
> ブラウザーが生成した `WheelEvent` オブジェクトだけが信頼され、信頼されたイベントだけが既定で発生します。
## 構文
diff --git a/files/ja/web/api/window/back/index.md b/files/ja/web/api/window/back/index.md
index 71ef8864c9c250..80ee8901b3b7b6 100644
--- a/files/ja/web/api/window/back/index.md
+++ b/files/ja/web/api/window/back/index.md
@@ -7,7 +7,8 @@ slug: Web/API/Window/back
`back()` は {{domxref("Window")}} インターフェイスの廃止された標準外のメソッドで、履歴の前の項目をウィンドウに返します。これは Firefox 固有のメソッドであり、Firefox 31 で削除されました。
-> **メモ:** 代わりに、標準の {{domxref("history.back")}} メソッドを使用してください。
+> [!NOTE]
+> 代わりに、標準の {{domxref("history.back")}} メソッドを使用してください。
## 構文
diff --git a/files/ja/web/api/window/console/index.md b/files/ja/web/api/window/console/index.md
index 185b15c5da59e5..40560cb217e5d0 100644
--- a/files/ja/web/api/window/console/index.md
+++ b/files/ja/web/api/window/console/index.md
@@ -32,4 +32,5 @@ console.dir(someObject);
{{Specifications}}
-> **メモ:** 現在はブラウザー間で多くの実装の違いがありますが、それらを統合して互いの一貫性を高める作業が進められています。
+> [!NOTE]
+> 現在はブラウザー間で多くの実装の違いがありますが、それらを統合して互いの一貫性を高める作業が進められています。
diff --git a/files/ja/web/api/window/dump/index.md b/files/ja/web/api/window/dump/index.md
index 2cfe0b88adbed2..9a19ef06dbd372 100644
--- a/files/ja/web/api/window/dump/index.md
+++ b/files/ja/web/api/window/dump/index.md
@@ -37,7 +37,8 @@ Windows では、dump の出力を見るにはコンソールを開く必要が
firefox > console.txt 2>&1
```
-> **メモ:** コンソールメッセージを、アプリケーションを起動したコンソールに表示させたいときは、[Gecko Console Redirector](https://github.com/matthewkastor/Redirector) を使用してください。プリコンパイルされたバイナリが の ZIP アーカイブ内の `Redirector-master\Gecko\Console Redirector\bin\Release` に含まれています。すべての dll ファイルと exe ファイルをお好みの場所にコピーしてください。次に、`Console Redirector.exe /?` を実行します。
+> [!NOTE]
+> コンソールメッセージを、アプリケーションを起動したコンソールに表示させたいときは、[Gecko Console Redirector](https://github.com/matthewkastor/Redirector) を使用してください。プリコンパイルされたバイナリが の ZIP アーカイブ内の `Redirector-master\Gecko\Console Redirector\bin\Release` に含まれています。すべての dll ファイルと exe ファイルをお好みの場所にコピーしてください。次に、`Console Redirector.exe /?` を実行します。
## 仕様
diff --git a/files/ja/web/api/window/error_event/index.md b/files/ja/web/api/window/error_event/index.md
index 1d6f1f7619ab4b..b7e4591d805c6b 100644
--- a/files/ja/web/api/window/error_event/index.md
+++ b/files/ja/web/api/window/error_event/index.md
@@ -20,7 +20,8 @@ addEventListener("error", (event) => {});
onerror = (event, source, lineno, colno, error) => {};
```
-> **メモ:** 歴史的な理由により、 `window` の `onerror` はイベントハンドラープロパティの中で唯一、複数の引数を受け取ります。
+> [!NOTE]
+> 歴史的な理由により、 `window` の `onerror` はイベントハンドラープロパティの中で唯一、複数の引数を受け取ります。
## イベント型
@@ -79,7 +80,8 @@ window.onerror = (a, b, c, d, e) => {
};
```
-> **メモ:** これらの引数名は [HTML イベントハンドラー属性](/ja/docs/Web/HTML/Attributes#event_handler_attributes)で監視可能で、最初の引数は `message` ではなく `event` と呼ばれます。
+> [!NOTE]
+> これらの引数名は [HTML イベントハンドラー属性](/ja/docs/Web/HTML/Attributes#event_handler_attributes)で監視可能で、最初の引数は `message` ではなく `event` と呼ばれます。
この特別な動作は `window` の `onerror` イベントハンドラーに対してのみ起こります。 [`Element.onerror`](/ja/docs/Web/API/HTMLElement/error_event) ハンドラーの場合は単一の {{domxref("ErrorEvent")}} オブジェクトを受け取ります。
diff --git a/files/ja/web/api/window/event/index.md b/files/ja/web/api/window/event/index.md
index d806a338c1bf59..9b9fa0b02c92f8 100644
--- a/files/ja/web/api/window/event/index.md
+++ b/files/ja/web/api/window/event/index.md
@@ -9,7 +9,8 @@ slug: Web/API/Window/event
新しいコードではこのプロパティの使用を*避けるべき*であり、代わりにイベントハンドラー関数になる {{domxref("Event")}} を使用してください。このプロパティは広くサポートされておらず、またサポートされていてもコードが壊れやすくなるおそれがあります。
-> **メモ:** このプロパティは、返された `Event` が期待する値ではない状況になる場合があり、壊れやすい可能性があります。加えて `Window.event` は、{{Glossary("shadow tree", "shadow trees")}} で発生したイベントに対して不適格です。
+> [!NOTE]
+> このプロパティは、返された `Event` が期待する値ではない状況になる場合があり、壊れやすい可能性があります。加えて `Window.event` は、{{Glossary("shadow tree", "shadow trees")}} で発生したイベントに対して不適格です。
## 仕様
diff --git a/files/ja/web/api/window/external/index.md b/files/ja/web/api/window/external/index.md
index bed5e9e252f91d..bff666a8a31938 100644
--- a/files/ja/web/api/window/external/index.md
+++ b/files/ja/web/api/window/external/index.md
@@ -6,7 +6,8 @@ original_slug: Web/API/Window/sidebar
{{APIRef}} {{Deprecated_Header}}
-> **警告:** この [`window.external`](/ja/docs/Web/API/Window/external) プロパティの Firefox だけの標準外のエイリアスは[削除](#ブラウザーの互換性)されました。
+> [!WARNING]
+> この [`window.external`](/ja/docs/Web/API/Window/external) プロパティの Firefox だけの標準外のエイリアスは[削除](#ブラウザーの互換性)されました。
ブラウザーにアドオンを登録するためのいくつかのメソッドを含むサイドバーオブジェクトを返します。
diff --git a/files/ja/web/api/window/frameelement/index.md b/files/ja/web/api/window/frameelement/index.md
index 24c01d1eaae867..e3cd8633bae2af 100644
--- a/files/ja/web/api/window/frameelement/index.md
+++ b/files/ja/web/api/window/frameelement/index.md
@@ -15,7 +15,8 @@ frameEl = window.frameElement;
- `frameEl` は、ウィンドウが埋め込まれた要素です。ウィンドウが別の文書に埋め込まれていない場合、または埋め込まれている文書が異なる生成元を持つ(例えば異なるドメインから設置されている)場合、これは `null` になります。
-> **メモ:** このプロパティの名前にもかかわらず、これは{{HTMLElement("object")}}、{{HTMLElement("iframe")}}、または [\