{"action":"created","issue":{"url":"https://api.github.com/repos/mozilla/fxa-content-server/issues/2262","labels_url":"https://api.github.com/repos/mozilla/fxa-content-server/issues/2262/labels{/name}","comments_url":"https://api.github.com/repos/mozilla/fxa-content-server/issues/2262/comments","events_url":"https://api.github.com/repos/mozilla/fxa-content-server/issues/2262/events","html_url":"https://github.com/mozilla/fxa-content-server/issues/2262","id":65290883,"number":2262,"title":"A few warnings being reported by HTMLLint","user":{"login":"pdehaan","id":557895,"avatar_url":"https://avatars.githubusercontent.com/u/557895?v=3","gravatar_id":"","url":"https://api.github.com/users/pdehaan","html_url":"https://github.com/pdehaan","followers_url":"https://api.github.com/users/pdehaan/followers","following_url":"https://api.github.com/users/pdehaan/following{/other_user}","gists_url":"https://api.github.com/users/pdehaan/gists{/gist_id}","starred_url":"https://api.github.com/users/pdehaan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdehaan/subscriptions","organizations_url":"https://api.github.com/users/pdehaan/orgs","repos_url":"https://api.github.com/users/pdehaan/repos","events_url":"https://api.github.com/users/pdehaan/events{/privacy}","received_events_url":"https://api.github.com/users/pdehaan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-03-30T20:04:37Z","updated_at":"2015-03-30T20:07:41Z","closed_at":null,"body":"### Steps to reproduce:\r\n1. `npm install grunt-htmllint -D`\r\n2. Add this to a new `./grunttasks/htmllint.js` file:\r\n    ```js\r\n/* This Source Code Form is subject to the terms of the Mozilla Public\r\n * License, v. 2.0. If a copy of the MPL was not distributed with this\r\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\r\n\r\nmodule.exports = function (grunt) {\r\n  'use strict';\r\n\r\n  grunt.config('htmllint', {\r\n    dist: {\r\n      options: {\r\n        'attr-name-style': false,\r\n        'attr-req-value': false,\r\n        'id-class-style': false,\r\n        'indent-style': 'spaces',\r\n        'indent-width': 2\r\n      },\r\n      src: [\r\n        'app/*.html',\r\n        'app/scripts/templates/{,**/}*.mustache'\r\n      ]\r\n    }\r\n  });\r\n};\r\n```\r\n3. Run `grunt htmllint`\r\n\r\n### Actual results:\r\n```\r\n$ grunt htmllint\r\n\r\nRunning \"htmllint:dist\" (htmllint) task\r\n>> app/scripts/templates/change_password.mustache: (E020), line 15, col 9, label does not have a \"for\" attribute or a labeable child\r\n>> app/scripts/templates/change_password.mustache: (E020), line 25, col 9, label does not have a \"for\" attribute or a labeable child\r\n>> app/scripts/templates/clear_storage.mustache: (E036), line 4, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/complete_reset_password.mustache: (E020), line 43, col 9, label does not have a \"for\" attribute or a labeable child\r\n>> app/scripts/templates/complete_reset_password.mustache: (E020), line 53, col 9, label does not have a \"for\" attribute or a labeable child\r\n>> app/scripts/templates/delete_account.mustache: (E036), line 16, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/delete_account.mustache: (E036), line 17, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/settings/avatar_change.mustache: (E013), line 10, col 9, the `alt` property must be set for image tags.\r\n>> app/scripts/templates/settings/avatar_crop.mustache: (E013), line 14, col 9, the `alt` property must be set for image tags.\r\n>> app/scripts/templates/settings/avatar_crop.mustache: (E014), line 14, col 9, a source must be given for each `img` tag\r\n>> app/scripts/templates/settings/avatar_gravatar.mustache: (E013), line 9, col 9, the `alt` property must be set for image tags.\r\n>> app/scripts/templates/sign_in.mustache: (E036), line 44, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/sign_in.mustache: (E036), line 46, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/sign_in.mustache: (E036), line 47, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/sign_in.mustache: (E036), line 48, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/sign_in.mustache: (E036), line 49, col 1, indenting spaces must be used in groups of 2\r\n>> app/scripts/templates/sign_in.mustache: (E012), line 72, col 68, the id \"password\" is already in use\r\n>> app/scripts/templates/sign_in.mustache: (E012), line 74, col 21, the id \"show-password\" is already in use\r\n>> app/scripts/templates/sign_in.mustache: (E012), line 81, col 22, the id \"submit-btn\" is already in use\r\n>> app/scripts/templates/test_template.mustache: (E012), line 24, col 17, the id \"show-password\" is already in use\r\n>> encountered 20 errors in total\r\n>> 9 file(s) had lint error out of 33 file(s). (skipped 0 files)\r\nWarning: Task \"htmllint:dist\" failed. Use --force to continue.\r\n\r\nAborted due to warnings.\r\n```"},"comment":{"url":"https://api.github.com/repos/mozilla/fxa-content-server/issues/comments/87812586","html_url":"https://github.com/mozilla/fxa-content-server/issues/2262#issuecomment-87812586","issue_url":"https://api.github.com/repos/mozilla/fxa-content-server/issues/2262","id":87812586,"user":{"login":"pdehaan","id":557895,"avatar_url":"https://avatars.githubusercontent.com/u/557895?v=3","gravatar_id":"","url":"https://api.github.com/users/pdehaan","html_url":"https://github.com/pdehaan","followers_url":"https://api.github.com/users/pdehaan/followers","following_url":"https://api.github.com/users/pdehaan/following{/other_user}","gists_url":"https://api.github.com/users/pdehaan/gists{/gist_id}","starred_url":"https://api.github.com/users/pdehaan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdehaan/subscriptions","organizations_url":"https://api.github.com/users/pdehaan/orgs","repos_url":"https://api.github.com/users/pdehaan/repos","events_url":"https://api.github.com/users/pdehaan/events{/privacy}","received_events_url":"https://api.github.com/users/pdehaan/received_events","type":"User","site_admin":false},"created_at":"2015-03-30T20:07:41Z","updated_at":"2015-03-30T20:07:41Z","body":"Also note that a bunch of those errors may be bogus if the duplicate `id` items are wrapped in `if...else` blocks (which is valid because only one would be visible at a time)."}}