10/23/2024

HTMLで絶対に改行させたくない!

 


HTMLで絶対に改行させたくない場合、一般的に<nobr>タグが使用されてたのが、<nobr>タグはHTML5で非推奨となり、代わりにCSSのwhite-spaceプロパティを使用することが推奨された

CSSのwhite-spaceプロパティで改行を禁止する

CSS
.no-break {
  white-space: nowrap;
}

<nobr>タグについて

<nobr>タグは、Netscape Navigatorが独自に拡張したタグで、HTML5では非推奨となっているため、white-space: nowrap;を代替使用

具体的な使用例

HTML
<p class="no-break">これは改行されません。</p>

その他の注意点

  • ブラウザの互換性: white-space: nowrap;は、ほとんどのモダンブラウザでサポートされているも、古いブラウザでは動作しない可能性あり
  • レイアウトの崩れ: nowrapを指定した場合、要素の幅を超えてテキストが表示される可能性あり、この場合、overflowプロパティなどを併用して、はみ出した部分の処理を行う必要がある
  • アクセシビリティ: 視覚障がいを持つユーザーにとっては、改行がないことで内容が理解しにくくなる可能性あり、<span>タグなどで区切りを入れるなど、適切な対策を検討すべし

10/22/2024

スクリーンリーダーのダウンロードと使用(ウェブアクセシビリティを体験する)

自分でもスクリーンリーダーを試してみれば、ウェブアクセシビリティを実感できる?



スクリーンリーダーのダウンロードと使用

  1. NVDA (NonVisual Desktop Access):

    • ダウンロード:

    • 無料でオープンソースのスクリーンリーダーで、Windowsで使用可

  2. JAWS (Job Access With Speech):

    • ダウンロード:

    • 高機能な商用スクリーンリーダーで、Windowsで使用可、試用版あり

  3. VoiceOver (Mac, iPhone, iPad):

    • 使用方法: Apple製品に標準搭載されてるので、Macでは「システム環境設定」→「アクセシビリティ」→「VoiceOver」、iPhoneやiPadでは「設定」→「アクセシビリティ」→「VoiceOver」から有効

簡単なチェック項目

  • ページを開き、スクリーンリーダーを有効に

  • キーボードだけでページをナビゲートできるか確認する(タブキーで移動し、エンターキーで選択)

  • 画像のalt属性や、リンクやボタンのラベルが適切に読み上げられるかチェック

10/21/2024

AIによるaria-labelとaria-labelledbyの違いの解説(ウェブアクセシビリティ)

 aria-labelaria-labelledbyはどちらもWebアクセシビリティのための属性ですが、用途や使い方に若干の違いがあります。

aria-label

  • 用途: 要素に対して直接ラベルを指定するために使われます。

  • 使用例: 要素自体にラベルを与える場合に適しています。特に、視覚的にはラベルが存在しないが支援技術にはラベルを伝えたい場合に便利です。

<button aria-label="閉じる">
  <i class="fas fa-times"></i>
</button>

この例では、アイコンボタンに「閉じる」というラベルを付けています。

aria-labelledby

  • 用途: 他の要素を参照してラベルを指定するために使われます。

  • 使用例: 別の要素(例えば、<label>や他のテキスト要素)をラベルとして使用する場合に適しています。これにより、ラベルの再利用やより複雑なラベル構成が可能です。

<label id="usernameLabel">ユーザー名:</label>
<input type="text" id="username" aria-labelledby="usernameLabel">

この例では、<input>要素が<label>要素によってラベル付けされています。

まとめ

  • aria-label: 要素に直接ラベルを指定。例えば、アイコンボタンにラベルを付ける場合に使用。

  • aria-labelledby: 他の要素を参照してラベルを指定。例えば、フォームフィールドにラベルを付ける場合に使用。

この記事に合った画像もAIに生成してもらったが、よく見ると色々微妙・・・



10/20/2024

ウェブアクセシビリティをチェックできるサイト:WAVE

 WAVE (Web Accessibility Evaluation Tool)

ブラウザでツールのページを開いたらURLを入力するだけ


※英語サイトなのでChromeで開いてDeepL(拡張機能)で翻訳してる

10/19/2024

AIによるJavaScriptコードの説明:ページトップに戻るボタン(前記事参照)

実際の動作⇒https://tan-deki.com/
  const backToTopButton = document.addEventListener('DOMContentLoaded', function () {
    const backToTopButton = document.getElementById('back-to-top');
    
    backToTopButton.addEventListener('click', () => {
        window.scrollTo({ top: 0, behavior: 'smooth' });
    });

    window.addEventListener('scroll', () => {
        if (window.pageYOffset > 300) {
            backToTopButton.classList.add('show');
        } else {
            backToTopButton.classList.remove('show');
        }
    });
});

 【コードの目的】

このJavaScriptコードは、Webページに「ページトップに戻る」ボタンを作成し、特定の条件下で表示・非表示を切り替えるためのものです。ユーザーがページをある程度スクロールするとボタンが表示され、クリックするとページの一番上へスムーズに移動することができます。

  1. DOMContentLoaded イベントリスナー:

    • document.addEventListener('DOMContentLoaded', function () { ... }): WebページのDOM(Document Object Model)が完全に読み込まれた後に、中の関数が実行されます。これは、JavaScriptコードがHTMLの要素にアクセスする前に、すべての要素が準備できていることを保証するためです。
  2. 「戻る」ボタンの取得:

    • const backToTopButton = document.getElementById('back-to-top');: HTMLの中でIDが'back-to-top'となっている要素(通常はボタン)を取得します。このボタンがクリックされたときの動作を定義します。
  3. ボタンクリック時の処理:

    • backToTopButton.addEventListener('click', () => { ... }): ボタンがクリックされたときに実行される関数を設定します。
      • window.scrollTo({ top: 0, behavior: 'smooth' });: ブラウザウィンドウをページの一番上(top: 0)へスムーズにスクロールします。behavior: 'smooth'によって、カクカクせずに滑らかなスクロールを実現します。
  4. スクロールイベントリスナー:

    • window.addEventListener('scroll', () => { ... }): ユーザーがページをスクロールしたときに実行される関数を設定します。
      • if (window.pageYOffset > 300) { ... } else { ... }: 現在スクロールされている位置(window.pageYOffset)が300ピクセルを超えているかチェックします。
        • 300ピクセル以上スクロールした場合:
          • backToTopButton.classList.add('show');: ボタンに'show'というクラスを追加します。CSSでこのクラスに表示に関するスタイルが定義されており、ボタンを表示させる効果があります。
        • 300ピクセル未満スクロールした場合:
          • backToTopButton.classList.remove('show');: ボタンから'show'クラスを削除します。これにより、ボタンが非表示になります。

まとめ

このコードは、以下の動作を実現します。

  • ページが読み込まれると、IDが'back-to-top'のボタンを探します。
  • ユーザーが300ピクセル以上スクロールすると、ボタンが表示されます。
  • ボタンをクリックすると、ページの一番上へスムーズに移動します。

補足:

  • CSS: ボタンの表示・非表示を切り替えるためには、CSSで'.show'クラスに表示に関するスタイルを定義する必要があります。
  • カスタマイズ: スクロールのしきい値(300ピクセル)や、ボタンの表示位置、デザインなどは、CSSやJavaScriptを調整することで変更できます。

このコードは、Webページのユーザビリティ向上に役立つ基本的なJavaScriptの例です。

10/18/2024

画像ボタンでページトップへ戻る固定リンクのJavaScriptとCSS


トップへ戻るボタンの画像を用意してサーバにアップして、ボタンを表示するページのHTMLに以下を挿入

<div id="back-to-top"></div>

JavaScriptの以下のコードを読み込む

  const backToTopButton = document.addEventListener('DOMContentLoaded', function () {
    const backToTopButton = document.getElementById('back-to-top');
    
    backToTopButton.addEventListener('click', () => {
        window.scrollTo({ top: 0, behavior: 'smooth' });
    });

    window.addEventListener('scroll', () => {
        if (window.pageYOffset > 300) {
            backToTopButton.classList.add('show');
        } else {
            backToTopButton.classList.remove('show');
        }
    });
});

back-to-topの部分はCSS

/* 画面トップへのボタン */
#back-to-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 60px;
    height: 160px;
    background-image: url('https://tan-deki.com/img/up.png');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    border: none;
    cursor: pointer;
    z-index: 100;
    opacity: 0; /* 初期状態は非表示 */
    pointer-events: none;
    transition: opacity 0.3s ease;
}

#back-to-top.show {
    opacity: 1;
    pointer-events: auto;
}
実際の動作⇒https://tan-deki.com/

10/16/2024

ウェブサイトのフッターにコピーライトは絶対に必要か?

コピーライト(著作権表示)は法律的に「必須」ではなくってよ、でもウェブサイトのフッターにコピーライトを表示することで、コンテンツの著作権がそのウェブサイトの所有者に帰属することを明確にし、無断使用や不正なコンテンツの流用を防ぐ効果があるので「推奨」

典型的な表示は以下

 ©2024 Company Name. All rights reserved.

でも頭の©は環境依存文字なので、このままコピペしても c になってしまったりするから、実体参照にするべき

&copy;2024 Company Name. All rights reserved.

という風にね

自分の場合はこんなで・・・

<div class="copyright">&copy; <?=date("Y")?> <a href="<?=$url?>" target="_blank">MomoiroOokamiRose</a>. All rights reserved.</div>

PHPを使って西暦年を取得したり、ファイルの行頭に定義してあるURLを取得してる


https://hachikuma.tan-deki.com/2017/06/index.html

10/15/2024

PC画面が真っ暗(カーソルも無い)

モニターが真っ暗になって、カーソルも見えなくなって無反応になってしまった場合、強制終了するしかない

再起動する前に電源が落ちてるのを確認してから、まずアナログ的に接続を一通り確認してみるのは有効だと思われ

ChatGPTは以下を提案してくれた

放電処置:

PCの電源アダプターを外し、バッテリーを取り外せる場合は取り外します。電源ボタンを10?15秒間長押しして、内部の電気を放電させます。その後、アダプターとバッテリーを再接続して、PCを再起動してみてください。

モニターの確認:

別のモニターやケーブルを使って、PCが正常に出力しているか確認します。モニターが正しく接続されているか、入力ソースが正しいかもチェックします。

ハードウェアの確認:

RAMやグラフィックカードがしっかりとスロットに挿入されているか確認します。もし可能であれば、別のRAMやグラフィックカードを試してみるのも良いでしょう。

リセット:

BIOSのリセットも考えられます。これには、CMOSバッテリーを一時的に外す方法や、リセットジャンパーを使用する方法があります。

そして再起動しただけで解決すればそれに越したことはないが、起動後も動作が不安定な気がしたら、チェックディスクやシステムファイルチェッカーを実行すると良い

検索窓から「cmd」でコマンドプロンプトを起動(管理者として実行)


チェックディスクは以下のコマンドでEnter
chkdsk /f C:

システムファイルチェッカーは以下のコマンドでEnter

sfc /scannow

結構、時間がかかる場合があるけど、途中の状態でもバックグラウンドで進行する(別のアカウントに切り替えたら中断してしまうも悪影響は無い)

10/14/2024

地図のプリントアウト用HTML

行先の住所や担当者名などのメモを地図と一緒にプリントアウトするためのHTMLなんて、方向音痴でないスマホ使いには誰得って記事だろうが、方向音痴・・・いや、方向感覚皆無のガラケー使いの自分には必須なのだ

1,GoogleMapなどを使って地図をスクショしてmap.jpgという名で保存

2,メモ帳に以下をコピペして、メモ〇行目にメモを書いたら、拡張子を.htmlにしてmap.jpgと同じフォルダに保存

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>地図とメモ</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        .container {
            text-align: center;
        }
        img {
            max-width: 100%;
            height: auto;
        }
        .print-info {
            margin-top: 20px;
            font-size: 18px;
        }
        @media print {
            .container {
                page-break-after: always;
            }
        }
    </style>
</head>
<body>

<div class="container">
    <img src="map.jpg" alt="Map">
    <div class="print-info">
        <p>メモ1行目</p>
        <p>メモ2行目</p>
        <p>メモ3行目</p>
    </div>
</div>

<script>
    window.onload = function() {
        window.print();
    };
</script>

</body>
</html>

保存したhtmlファイルをブラウザで開くとこんな感じで[印刷]ボタンでプリントアウト

※文字コードはUTF-8にするコト