Angular 7 - режим производства: я не могу перемещаться по странице с помощью клавиши табуляции - PullRequest
0 голосов
/ 05 декабря 2018

У меня проблема, которую я действительно не смог понять!Когда я запускаю свой проект angular 7 в режиме dev (ng serve), я могу перемещаться по моей странице (формы, ссылки, кнопки и т. Д.) С помощью клавиши табуляции.Когда я запускаю ng serve --prod и запускаю проект локально (localhost), навигация по вкладкам также работает.Но как ни странно, когда я помещаю производственную сборку на свой сервер, клавиша табуляции перестает работать.

Я оставляю здесь свой файл angular.json, так как мой лучший снимок заключается в том, что эта проблема связана с некоторыми настройками (простоНе знаю, какой)

Я снова погуглил и гуглил, но не смог найти ничего связанного ...

 {
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "Marketplace": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist",
            "index": "src/index.html",
            "main": "src/main.ts",
            "tsConfig": "src/tsconfig.app.json",
            "polyfills": "src/polyfills.ts",
            "assets": [
              {
                "glob": "**/*",
                "input": "src/assets/ubrest",
                "output": "assets"
              },
              "src/assets/ubrest/favicon.ico",
              "src/.htaccess"
            ],
            "styles": [
              "node_modules/bootstrap/dist/css/bootstrap.min.css",
              "node_modules/summernote/dist/summernote-lite.css",
              "node_modules/owl.carousel/dist/assets/owl.carousel.css",
              "node_modules/owl.carousel/dist/assets/owl.theme.default.css",  
              "node_modules/fullpage.js/dist/jquery.fullpage.css",
              "src/assets/ubrest/sass/styles.scss"        
              ],
            "stylePreprocessorOptions": {
              "includePaths": [
                "src/assets/ubrest/sass"
              ]
            },
            "scripts": [
              "node_modules/jquery/dist/jquery.min.js",
              "node_modules/summernote/dist/summernote-lite.js",
              "node_modules/owl.carousel/dist/owl.carousel.min.js",
              "node_modules/fullpage.js/dist/jquery.fullpage.min.js",
              "node_modules/fullpage.js/dist/jquery.fullpage.extensions.min.js"
            ]
          },
          "configurations": {
            "production": {
              "optimization": false,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ]
            }
          }
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "Marketplace:build",
            "port": 8080
          },
          "configurations": {
            "production": {
              "browserTarget": "Marketplace:build:production"
            }
          }
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "Marketplace:build"
          }
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "karmaConfig": "./karma.conf.js",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "scripts": [],
            "styles": [
              "node_modules/bootstrap/dist/css/bootstrap.min.css",
              "node_modules/ng2-toastr/bundles/ng2-toastr.min.css",
              "src/assets/sass/styles.scss"
            ],
            "assets": [
              "src/assets",
              "src/favicon.ico"
            ]
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "src/tsconfig.app.json",
              "src/tsconfig.spec.json"
            ],
            "exclude": [
              "**/node_modules/**"
            ]
          }
        }
      }
    },
    "Marketplace-e2e": {
      "root": "",
      "sourceRoot": "",
      "projectType": "application",
      "architect": {
        "e2e": {
          "builder": "@angular-devkit/build-angular:protractor",
          "options": {
            "protractorConfig": "./protractor.conf.js",
            "devServerTarget": "Rhizom Marketplace:serve"
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "e2e/tsconfig.e2e.json"
            ],
            "exclude": [
              "**/node_modules/**"
            ]
          }
        }
      }
    }
  },
  "defaultProject": "Marketplace",
  "schematics": {
    "@schematics/angular:component": {
      "prefix": "app",
      "styleext": "scss"
    },
    "@schematics/angular:directive": {
      "prefix": "app"
    }
  }
}

Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Я вижу, что вы используете fullPage.js.Библиотека перезаписывает функцию вкладки, чтобы в определенных случаях сохранять правильную разметку.

Чтобы проверить, является ли это вашей проблемой, вы можете попробовать вызвать консоль:

$.fn.fullpage.destroy();

Этоуничтожит все обработчики JS, используемые fullPage.js, но сохранит структуру полной страницы.

Что действительно не имеет смысла, так это то, что у вас проблема только в рабочей среде, а не в dev.

Iв любом случае предложит обновить версию fullpage.js до последней.Fullpage.js 3.X.Это избавляет от jQuery и решает определенные проблемы с помощью функции вкладок, как вы можете видеть в changelog .

Кроме того, обратите внимание, что вам нужно только один раз включить fullPage.js, и вы делаете это.дважды, что может привести к проблемам:

          "node_modules/fullpage.js/dist/jquery.fullpage.min.js",
          "node_modules/fullpage.js/dist/jquery.fullpage.extensions.min.js"

Используйте только расширения один.

0 голосов
/ 09 декабря 2018

Странно.У нас есть приложения, построенные на современном угловом уровне, но мы никогда не сталкивались с этой проблемой при проведении аудита доступности.Вы смотрели на вкладку индексации?Если вы используете пользовательские компоненты, вам может потребоваться назначить tabindex = "0" для тех элементов, которые должны иметь фокус клавиатуры.

...