Reactガイドを読んでいくその28

これは

Reactのガイドを読んでいく記事です。

ガイドのリンク

ja.reactjs.org

アクセシビリティ

何回かに分けてやっていきます。

より複雑なウィジェット

複雑なアプリを作っても、アクセシビリティが複雑ではよくない。
JSXではWAI-ARIAのRoles ModelやSupported States and Propertiesの知識を使い
より複雑なReactコンポーネントの構築を可能としている。
ウィジェットはそれぞれ特定のデザインパターンを持っているので、それに合わせた方法で機能することを期待する。

その他に考慮すべきポイント

基本的にはHTMLと同様の点に注意しておくと問題が起こりにくい。

言語設定

読み上げソフトのために言語設定を必ずすること

ドキュメントのtitleの設定

ドキュメントのはユーザがどの場所にいるか認識できるようコンテンツを正しく説明するものにしている必要がある。<br/> Reactでは<a href="https://github.com/gaearon/react-document-title">React Document Title Component</a>を用いると良い。</p> <h4>色の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C8%A5%E9">コントラ</a>スト</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%A7%BC%E5">色弱</a>のユーザーに対しても最大限読めるように配慮した色の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C8%A5%E9">コントラ</a>ストがあることを確認すること。<br/> 適切な色の組み合わせを全てのケースについて手作業で行うのは困難なので、以下のColorableで自動計算すると便利。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fjxnblk.github.io%2Fcolorable%2F" title="Colorable" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://jxnblk.github.io/colorable/">jxnblk.github.io</a></cite></p> <p>他には以下のようなツールを使うと良い。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwebaim.org%2Fresources%2Fcontrastchecker%2F" title="WebAIM: Contrast Checker" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://webaim.org/resources/contrastchecker/">webaim.org</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fdeveloper.paciellogroup.com%2Fresources%2Fcontrastanalyser%2F" title="Colour Contrast Analyser (CCA)" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://developer.paciellogroup.com/resources/contrastanalyser/">developer.paciellogroup.com</a></cite></p> <p>今日はここまで。</p> </div> <footer class="entry-footer"> <div class="entry-tags-wrapper"> <div class="entry-tags"> </div> </div> <p class="entry-footer-section track-inview-by-gtm" data-gtm-track-json="{"area": "finish_reading"}"> <span class="author vcard"><span class="fn" data-load-nickname="1" data-user-name="torikizi" >torikizi</span></span> <span class="entry-footer-time"><a href="https://torikizi.hatenablog.jp/entry/2019/10/31/213701"><time data-relative datetime="2019-10-31T12:37:01Z" title="2019-10-31T12:37:01Z" class="updated">2019-10-31 21:37</time></a></span> <span class=" entry-footer-subscribe " data-test-blog-controlls-subscribe> <a href="https://blog.hatena.ne.jp/torikizi/torikizi.hatenablog.jp/subscribe?utm_campaign=subscribe_blog&utm_medium=button&utm_source=blogs_entry_footer"> 読者になる </a> </span> </p> <div class="hatena-star-container" data-hatena-star-container data-hatena-star-url="https://torikizi.hatenablog.jp/entry/2019/10/31/213701" data-hatena-star-title="Reactガイドを読んでいくその28" data-hatena-star-variant="profile-icon" data-hatena-star-profile-url-template="https://blog.hatena.ne.jp/{username}/" ></div> <div class="social-buttons"> <div class="social-button-item"> <a href="https://b.hatena.ne.jp/entry/s/torikizi.hatenablog.jp/entry/2019/10/31/213701" class="hatena-bookmark-button" data-hatena-bookmark-url="https://torikizi.hatenablog.jp/entry/2019/10/31/213701" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="この記事をはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only.gif" alt="この記事をはてなブックマークに追加" width="20" height="20" style="border: none;" /></a> </div> <div class="social-button-item"> <div class="fb-share-button" data-layout="box_count" data-href="https://torikizi.hatenablog.jp/entry/2019/10/31/213701"></div> </div> <div class="social-button-item"> <a class="entry-share-button entry-share-button-twitter test-share-button-twitter" href="https://twitter.com/intent/tweet?text=React%E3%82%AC%E3%82%A4%E3%83%89%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A7%E3%81%84%E3%81%8F%E3%81%9D%E3%81%AE28+-+torikizi%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0&url=https%3A%2F%2Ftorikizi.hatenablog.jp%2Fentry%2F2019%2F10%2F31%2F213701" title="X(Twitter)で投稿する" ></a> </div> </div> <div class="google-afc-image test-google-rectangle-ads"> <div id="google_afc_user_container_1" class="google-afc-user-container google_afc_blocklink2_5 google_afc_boder" data-test-unit="/4374287/blog_user"></div> <a href="http://blog.hatena.ne.jp/guide/pro" class="open-pro-modal" data-guide-pro-modal-ad-url="https://hatena.blog/guide/pro/modal/ad">広告を非表示にする</a> </div> <div class="customized-footer"> <div class="entry-footer-modules" id="entry-footer-secondary-modules"> <div class="hatena-module hatena-module-related-entries" > <!-- Hatena-Epic-has-related-entries-with-elasticsearch:true --> <div class="hatena-module-title"> 関連記事 </div> <div class="hatena-module-body"> <ul class="related-entries hatena-urllist urllist-with-thumbnails"> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="https://torikizi.hatenablog.jp/archive/2020/07/05" rel="nofollow"> <time datetime="2020-07-05T08:58:34Z" title="2020-07-05T08:58:34Z"> 2020-07-05 </time> </a> </div> <a href="https://torikizi.hatenablog.jp/entry/2020/07/05/175834" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Reactガイドを読んでいくその269</a> <div class="urllist-entry-body related-entries-entry-body">これは Reactのガイドを読んでいく記事です。 ガイドのリンク j…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="https://torikizi.hatenablog.jp/archive/2020/06/08" rel="nofollow"> <time datetime="2020-06-08T08:00:57Z" title="2020-06-08T08:00:57Z"> 2020-06-08 </time> </a> </div> <a href="https://torikizi.hatenablog.jp/entry/2020/06/08/170057" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Reactガイドを読んでいくその242</a> <div class="urllist-entry-body related-entries-entry-body">これは Reactのガイドを読んでいく記事です。 ガイドのリンク j…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="https://torikizi.hatenablog.jp/archive/2020/04/10" rel="nofollow"> <time datetime="2020-04-10T11:05:25Z" title="2020-04-10T11:05:25Z"> 2020-04-10 </time> </a> </div> <a href="https://torikizi.hatenablog.jp/entry/2020/04/10/200525" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Reactガイドを読んでいくその183</a> <div class="urllist-entry-body related-entries-entry-body">これは Reactのガイドを読んでいく記事です。 ガイドのリンク j…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <a class="urllist-image-link related-entries-image-link" href="https://torikizi.hatenablog.jp/entry/2020/01/01/224118"> <img alt="Reactガイドを読んでいくその85" src="https://cdn.image.st-hatena.com/image/square/298058b2bffe422918ac5e915861b0c0839ae26b/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png" class="urllist-image related-entries-image" title="Reactガイドを読んでいくその85" width="100" height="100" loading="lazy"> </a> <div class="urllist-date-link related-entries-date-link"> <a href="https://torikizi.hatenablog.jp/archive/2020/01/01" rel="nofollow"> <time datetime="2020-01-01T13:41:18Z" title="2020-01-01T13:41:18Z"> 2020-01-01 </time> </a> </div> <a href="https://torikizi.hatenablog.jp/entry/2020/01/01/224118" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Reactガイドを読んでいくその85</a> <div class="urllist-entry-body related-entries-entry-body">これは Reactのガイドを読んでいく記事です。 ガイドのリンク j…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="https://torikizi.hatenablog.jp/archive/2019/11/03" rel="nofollow"> <time datetime="2019-11-03T08:32:21Z" title="2019-11-03T08:32:21Z"> 2019-11-03 </time> </a> </div> <a href="https://torikizi.hatenablog.jp/entry/2019/11/03/173221" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Reactガイドを読んでいくその31</a> <div class="urllist-entry-body related-entries-entry-body">これは Reactのガイドを読んでいく記事です。 ガイドのリンク j…</div> </div> </li> </ul> </div> </div> </div> </div> <div class="comment-box js-comment-box"> <ul class="comment js-comment"> <li class="read-more-comments" style="display: none;"><a>もっと読む</a></li> </ul> <a class="leave-comment-title js-leave-comment-title">コメントを書く</a> </div> </footer> </div> </article> <!-- rakuten_ad_target_end --> <!-- google_ad_section_end --> <div class="pager pager-permalink permalink"> <span class="pager-prev"> <a href="https://torikizi.hatenablog.jp/entry/2019/11/01/175908" rel="prev"> <span class="pager-arrow">« </span> Reactガイドを読んでいくその29 </a> </span> <span class="pager-next"> <a href="https://torikizi.hatenablog.jp/entry/2019/10/30/230846" rel="next"> Reactガイドを読んでいくその27 <span class="pager-arrow"> »</span> </a> </span> </div> </div> </div> <aside id="box1"> <div id="box1-inner"> </div> </aside> </div><!-- #wrapper --> <aside id="box2"> <div id="box2-inner"> <div class="hatena-module hatena-module-profile"> <div class="hatena-module-title"> プロフィール </div> <div class="hatena-module-body"> <a href="https://torikizi.hatenablog.jp/about" class="profile-icon-link"> <img src="https://cdn.profile-image.st-hatena.com/users/torikizi/profile.png?1558973335" alt="id:torikizi" class="profile-icon" /> </a> <span class="id"> <a href="https://torikizi.hatenablog.jp/about" class="hatena-id-link"><span data-load-nickname="1" data-user-name="torikizi">id:torikizi</span></a> </span> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" > <a href="#" class="hatena-follow-button js-hatena-follow-button"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count"> </span> </div> </div> <div class="profile-about"> <a href="https://torikizi.hatenablog.jp/about">このブログについて</a> </div> </div> </div> <div class="hatena-module hatena-module-search-box"> <div class="hatena-module-title"> 検索 </div> <div class="hatena-module-body"> <form class="search-form" role="search" action="https://torikizi.hatenablog.jp/search" method="get"> <input type="text" name="q" class="search-module-input" value="" placeholder="記事を検索" required> <input type="submit" value="検索" class="search-module-button" /> </form> </div> </div> <div class="hatena-module hatena-module-recent-entries "> <div class="hatena-module-title"> <a href="https://torikizi.hatenablog.jp/archive"> 最新記事 </a> </div> <div class="hatena-module-body"> <ul class="recent-entries hatena-urllist "> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://torikizi.hatenablog.jp/entry/2023/12/31/175032" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">2023年まとめ</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://torikizi.hatenablog.jp/entry/2023/09/09/165012" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">UE5 極め本2</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://torikizi.hatenablog.jp/entry/2023/09/09/164708" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">UE5 極め本2</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://torikizi.hatenablog.jp/entry/2023/09/09/161241" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">UE5 極め本1</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://torikizi.hatenablog.jp/entry/2023/09/03/203708" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">singining team id ってどこだ</a> </div> </li> </ul> </div> </div> <div class="hatena-module hatena-module-archive" data-archive-type="default" data-archive-url="https://torikizi.hatenablog.jp/archive"> <div class="hatena-module-title"> <a href="https://torikizi.hatenablog.jp/archive">月別アーカイブ</a> </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li class="archive-module-year archive-module-year-hidden" data-year="2023"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://torikizi.hatenablog.jp/archive/2023" class="archive-module-year-title archive-module-year-2023"> 2023 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2023/12" class="archive-module-month-title archive-module-month-2023-12"> 2023 / 12 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2023/09" class="archive-module-month-title archive-module-month-2023-9"> 2023 / 9 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2023/06" class="archive-module-month-title archive-module-month-2023-6"> 2023 / 6 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2022"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://torikizi.hatenablog.jp/archive/2022" class="archive-module-year-title archive-module-year-2022"> 2022 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2022/12" class="archive-module-month-title archive-module-month-2022-12"> 2022 / 12 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2022/11" class="archive-module-month-title archive-module-month-2022-11"> 2022 / 11 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2022/04" class="archive-module-month-title archive-module-month-2022-4"> 2022 / 4 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2022/03" class="archive-module-month-title archive-module-month-2022-3"> 2022 / 3 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2022/01" class="archive-module-month-title archive-module-month-2022-1"> 2022 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2021"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://torikizi.hatenablog.jp/archive/2021" class="archive-module-year-title archive-module-year-2021"> 2021 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2021/12" class="archive-module-month-title archive-module-month-2021-12"> 2021 / 12 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2021/04" class="archive-module-month-title archive-module-month-2021-4"> 2021 / 4 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2021/03" class="archive-module-month-title archive-module-month-2021-3"> 2021 / 3 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2020"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://torikizi.hatenablog.jp/archive/2020" class="archive-module-year-title archive-module-year-2020"> 2020 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/12" class="archive-module-month-title archive-module-month-2020-12"> 2020 / 12 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/10" class="archive-module-month-title archive-module-month-2020-10"> 2020 / 10 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/09" class="archive-module-month-title archive-module-month-2020-9"> 2020 / 9 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/08" class="archive-module-month-title archive-module-month-2020-8"> 2020 / 8 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/07" class="archive-module-month-title archive-module-month-2020-7"> 2020 / 7 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/06" class="archive-module-month-title archive-module-month-2020-6"> 2020 / 6 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/05" class="archive-module-month-title archive-module-month-2020-5"> 2020 / 5 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/04" class="archive-module-month-title archive-module-month-2020-4"> 2020 / 4 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/03" class="archive-module-month-title archive-module-month-2020-3"> 2020 / 3 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/02" class="archive-module-month-title archive-module-month-2020-2"> 2020 / 2 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2020/01" class="archive-module-month-title archive-module-month-2020-1"> 2020 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2019"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://torikizi.hatenablog.jp/archive/2019" class="archive-module-year-title archive-module-year-2019"> 2019 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/12" class="archive-module-month-title archive-module-month-2019-12"> 2019 / 12 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/11" class="archive-module-month-title archive-module-month-2019-11"> 2019 / 11 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/10" class="archive-module-month-title archive-module-month-2019-10"> 2019 / 10 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/09" class="archive-module-month-title archive-module-month-2019-9"> 2019 / 9 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/08" class="archive-module-month-title archive-module-month-2019-8"> 2019 / 8 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/07" class="archive-module-month-title archive-module-month-2019-7"> 2019 / 7 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/06" class="archive-module-month-title archive-module-month-2019-6"> 2019 / 6 </a> </li> <li class="archive-module-month"> <a href="https://torikizi.hatenablog.jp/archive/2019/05" class="archive-module-month-title archive-module-month-2019-5"> 2019 / 5 </a> </li> </ul> </li> </ul> </div> </div> <div class="hatena-module hatena-module-category"> <div class="hatena-module-title"> カテゴリー </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li> <a href="https://torikizi.hatenablog.jp/archive/category/poem" class="category-poem"> poem (9) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/vtuber" class="category-vtuber"> vtuber (2) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/VR" class="category-VR"> VR (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/memo" class="category-memo"> memo (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/Go" class="category-Go"> Go (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/Unity" class="category-Unity"> Unity (8) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/Android" class="category-Android"> Android (3) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/%E5%8B%95%E7%94%BB" class="category-動画"> 動画 (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/%E8%AA%AD%E3%82%93%E3%81%A0%E6%9C%AC" class="category-読んだ本"> 読んだ本 (6) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/WebRTC" class="category-WebRTC"> WebRTC (8) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/React" class="category-React"> React (329) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88" class="category-イベント"> イベント (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/AR" class="category-AR"> AR (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/PlayFab" class="category-PlayFab"> PlayFab (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/nreal" class="category-nreal"> nreal (2) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/%E4%BC%9A%E8%A8%88" class="category-会計"> 会計 (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/Oculus%20Go" class="category-Oculus-Go"> Oculus Go (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/TypeScript" class="category-TypeScript"> TypeScript (88) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/VRM" class="category-VRM"> VRM (1) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/AzureKinect" class="category-AzureKinect"> AzureKinect (2) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/Babylon.js" class="category-Babylon.js"> Babylon.js (27) </a> </li> <li> <a href="https://torikizi.hatenablog.jp/archive/category/M5Stack" class="category-M5Stack"> M5Stack (1) </a> </li> </ul> </div> </div> </div> </aside> </div> </div> </div> </div> <footer id="footer" data-brand="hatenablog"> <div id="footer-inner"> <div style="display:none !important" class="guest-footer js-guide-register test-blogs-register-guide" data-action="guide-register"> <div class="guest-footer-content"> <h3>はてなブログをはじめよう!</h3> <p>torikiziさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?</p> <div class="guest-footer-btn-container"> <div class="guest-footer-btn"> <a class="btn btn-register js-inherit-ga" href="https://blog.hatena.ne.jp/register?via=200227" target="_blank">はてなブログをはじめる(無料)</a> </div> <div class="guest-footer-btn"> <a href="https://hatena.blog/guide" target="_blank">はてなブログとは</a> </div> </div> </div> </div> <address class="footer-address"> <a href="https://torikizi.hatenablog.jp/"> <img src="https://cdn.image.st-hatena.com/image/square/14e5ac5481fa34fd05ca11b88b2d4acfb621102b/backend=imagemagick;height=128;version=1;width=128/https%3A%2F%2Fcdn.user.blog.st-hatena.com%2Fblog_custom_icon%2F89914793%2F1558973444822232" width="16" height="16" alt="torikiziのブログ"/> <span class="footer-address-name">torikiziのブログ</span> </a> </address> <p class="services"> Powered by <a href="https://hatena.blog/">Hatena Blog</a> | <a href="https://blog.hatena.ne.jp/-/abuse_report?target_url=https%3A%2F%2Ftorikizi.hatenablog.jp%2Fentry%2F2019%2F10%2F31%2F213701" class="report-abuse-link test-report-abuse-link" target="_blank">ブログを報告する</a> </p> </div> </footer> <script async src="https://s.hatena.ne.jp/js/widget/star.js"></script> <script> if (typeof window.Hatena === 'undefined') { window.Hatena = {}; } if (!Hatena.hasOwnProperty('Star')) { Hatena.Star = { VERSION: 2, }; } </script> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&appId=719729204785177&version=v17.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="quote-box"> <div class="tooltip-quote tooltip-quote-stock"> <i class="blogicon-quote" title="引用をストック"></i> </div> <div class="tooltip-quote tooltip-quote-tweet js-tooltip-quote-tweet"> <a class="js-tweet-quote" target="_blank" data-track-name="quote-tweet" data-track-once> <img src="https://cdn.blog.st-hatena.com/images/admin/quote/quote-x-icon.svg?version=319ea734dea584f6165bdb13696cc8" title="引用して投稿する" > </a> </div> </div> <div class="quote-stock-panel" id="quote-stock-message-box" style="position: absolute; z-index: 3000"> <div class="message-box" id="quote-stock-succeeded-message" style="display: none"> <p>引用をストックしました</p> <button class="btn btn-primary" id="quote-stock-show-editor-button" data-track-name="curation-quote-edit-button">ストック一覧を見る</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="message-box" id="quote-login-required-message" style="display: none"> <p>引用するにはまずログインしてください</p> <button class="btn btn-primary" id="quote-login-button">ログイン</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="quote-stock-failed-message" style="display: none"> <p>引用をストックできませんでした。再度お試しください</p> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="unstockable-quote-message-box" style="display: none; position: absolute; z-index: 3000;"> <p>限定公開記事のため引用できません。</p> </div> </div> <script type="x-underscore-template" id="js-requote-button-template"> <div class="requote-button js-requote-button"> <button class="requote-button-btn tipsy-top" title="引用する"><i class="blogicon-quote"></i></button> </div> </script> <div id="hidden-subscribe-button" style="display: none;"> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" > <a href="#" class="hatena-follow-button js-hatena-follow-button"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count"> </span> </div> </div> </div> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> <script src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?v=1.12.4&version=319ea734dea584f6165bdb13696cc8"></script> <script src="https://cdn.blog.st-hatena.com/js/texts-ja.js?version=319ea734dea584f6165bdb13696cc8"></script> <script id="vendors-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/vendors.js?version=319ea734dea584f6165bdb13696cc8" crossorigin="anonymous"></script> <script id="hatenablog-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/hatenablog.js?version=319ea734dea584f6165bdb13696cc8" crossorigin="anonymous" data-page-id="entry"></script> <script>Hatena.Diary.GlobalHeader.init()</script> <script id="valve-dmp" data-service="blog" src="https://cdn.pool.st-hatena.com/valve/dmp.js" data-test-id="dmpjs" async></script> </body> </html>