国が公開している表の問題
Twitter(現𝕏)で指摘された国土交通省が公開している表について何が駄目なのかの考察
目次
- 公開の目的とデータ形式
- 見栄え(layout)
- データ構造(content)
1. 公開の目的とデータ形式
上位ページを見ると「国土数値情報ダウンロードサイト」とあるので、CSV形式で配布されるべきだと思う。ただ、ダウンロード前にどんな内容かを見せておくと親切なのでプラスαでHTML形式もあるとよい。
HTML形式だけ公開するのは「サイトの目的を理解していない」と言わざるを得ない。
2. 見栄え(layout)
画面スクロールせずに見えると楽ですよね。見て満足するのが目的なら。でもこのデータは何かの処理に使うことが想定されるのでもっと大事なことがあるよね。
Webページに限らず、電子デバイスの性質上、縦スクロールより横スクロールのほうが一般に高コストなので、基本的に横拡張はすべきではない。
そもそもコードと名称という辞書的な2項目を複数列に展開して嬉しいのは紙に印刷するときくらい。
3. データ構造(content)
いよいよ本題。とりあえずHTMLソースを見てみる。
<html><head>
<title></title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>都道府県コード 〈 ファイル名称:PrefCode 〉</h1>
<br><br>
<table border="1" cellspacing="0" cellpadding="5">
<tbody><tr align="center">
<td bgcolor="#CCCCCC" width="80"><b>コード</b></td>
<td bgcolor="#CCCCCC" width="160"><b>対応する内容</b></td>
<td bgcolor="#CCCCCC" width="80"><b>コード</b></td>
<td bgcolor="#CCCCCC" width="160"><b>対応する内容</b></td>
</tr>
<tr>
<td>01</td><td>北海道</td>
<td>25</td><td>滋賀県</td>
</tr>
<tr>
<td>02</td><td>青森県</td><td>
26</td><td>京都府</td>
</tr>
<tr>
<td>03</td><td>岩手県</td>
<td>27</td><td>大阪府</td>
</tr>
<tr>
<td>04</td><td>宮城県</td>
<td>28</td><td>兵庫県</td>
</tr>
<tr>
<td>05</td><td>秋田県</td>
<td>29</td><td>奈良県</td>
</tr>
<tr>
<td>06</td><td>山形県</td>
<td>30</td><td>和歌山県</td>
</tr>
<tr>
<td>07</td><td>福島県</td>
<td>31</td><td>鳥取県</td>
</tr>
<tr>
<td>08</td><td>茨城県</td>
<td>32</td><td>島根県</td>
</tr>
<tr>
<td>09</td><td>栃木県</td>
<td>33</td><td>岡山県</td>
</tr>
<tr>
<td>10</td><td>群馬県</td>
<td>34</td><td>広島県</td>
</tr>
<tr>
<td>11</td><td>埼玉県</td>
<td>35</td><td>山口県</td>
</tr>
<tr>
<td>12</td><td>千葉県</td>
<td>36</td><td>徳島県</td>
</tr>
<tr>
<td>13</td><td>東京都</td>
<td>37</td><td>香川県</td>
</tr>
<tr>
<td>14</td><td>神奈川県</td>
<td>38</td><td>愛媛県</td>
</tr>
<tr>
<td>15</td><td>新潟県</td>
<td>39</td><td>高知県</td>
</tr>
<tr>
<td>16</td><td>富山県</td>
<td>40</td><td>福岡県</td>
</tr>
<tr>
<td>17</td><td>石川県</td>
<td>41</td><td>佐賀県</td>
</tr>
<tr>
<td>18</td><td>福井県</td>
<td>42</td><td>長崎県</td>
</tr>
<tr>
<td>19</td><td>山梨県</td>
<td>43</td><td>熊本県</td>
</tr>
<tr>
<td>20</td><td>長野県</td>
<td>44</td><td>大分県</td>
</tr>
<tr>
<td>21</td><td>岐阜県</td>
<td>45</td><td>宮崎県</td>
</tr>
<tr>
<td>22</td><td>静岡県</td>
<td>46</td><td>鹿児島県</td>
</tr>
<tr>
<td>23</td><td>愛知県</td>
<td>47</td><td>沖縄県</td>
</tr>
<tr>
<td>24</td><td>三重県</td>
<td colspan="2"> </td>
</tr>
</tbody></table>
<script type="text/javascript" async="async" src="/__zenedge/assets/f.js?v=1674207422"></script><script>(function () { var v = 1701480680 * 3.1415926535898; v = Math.floor(v); document.cookie = "__zjc8819="+v+"; expires=Sat, 02 Dec 2023 01:32:20 UTC; path=/"; })()</script>
<input id="extension-is-installed" type="hidden" value="32"><input id="app-is-installed" type="hidden" value="23"></body></html>
第一印象はデータ構造は何も考えてられていないから改行とインデントがぐちゃぐちゃ。メンテするつもりがないのだろう。
前述した通り、別にCSV形式でダウンロードさせてくれるなら大した問題ではない。そうではないから大きな問題となる。
あとbgcolorやalignはstyle sheetを使え。要素ごとに書くな。CSSファイルに外出しまでは求めないからせめてheadにまとめて書いてくれ。こういう仕事振りだとCSS外出しにしたら担当範囲がややこしくなって余計にミスが増えるだろうから。
なんならCSV形式のテキストファイルの画面を画像にして載せるだけでよい。私がチームリーダならお前はtableを書くなと言いたい。
…あー、あまりの衝撃で気づかなかったけど、titleが空だな…。まじか…。
こういう現場だと「えっ?デジタルトランスフォーメーションがどうしたって?」と言いたくなってくる…。
おわり
2023-12-13 追記
自分ならXMLで書くというポストをしたら10いいね4RP4BMもらえたので追記しておきます。 気が向いたらXHTML形式に変換するXSLTを書くかも。
https://twitter.com/KOKO_Ewigfeld/status/1730815849328701796?t=S2iYiyL3BCKdVKDRVTFB0g&s=19