microsoft / accessibility-insights-web
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 8% duplication:
    • 53,293 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 4,475 duplicated lines
  • 643 duplicates
system8% (4,475 lines)
Duplication per Extension
tsx10% (2,227 lines)
ts5% (1,435 lines)
scss9% (460 lines)
yaml22% (182 lines)
html45% (97 lines)
js3% (74 lines)
Duplication per Component (primary)
src/assessments23% (1,391 lines)
src/common9% (765 lines)
src/DetailsView5% (507 lines)
src/background7% (373 lines)
src/reports8% (362 lines)
src/injected3% (218 lines)
src/electron3% (216 lines)
src/icons47% (142 lines)
src/issue-filing17% (135 lines)
pipeline/unified26% (127 lines)
ROOT8% (98 lines)
src/popup2% (34 lines)
src40% (26 lines)
pipeline14% (24 lines)
src/views2% (20 lines)
src/debug-tools3% (18 lines)
src/scanner1% (12 lines)
deploy6% (7 lines)
packages/report0% (0 lines)
packages/ui0% (0 lines)
pipeline/scripts0% (0 lines)
src/Devtools0% (0 lines)
src/ad-hoc-visualizations0% (0 lines)
src/content0% (0 lines)
src/fast-pass0% (0 lines)
src/packages0% (0 lines)
src/report-export0% (0 lines)
src/types0% (0 lines)
tools0% (0 lines)
tools/strict-null-checks0% (0 lines)

Duplication Between Components (50+ lines)

G src/common src/common src/reports src/reports src/common--src/reports 124 src/DetailsView src/DetailsView src/DetailsView--src/common 117

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 643 duplicates...
Size#FoldersFilesLinesCode
90 x 2 src/background/stores
src/background/stores
card-selection-store.ts
needs-review-card-selection-store.ts
42:173 (76%)
48:179 (73%)
view
45 x 2 src/issue-filing/common
src/issue-filing/common
create-issue-details-builder-for-unif...
create-issue-details-builder.ts
12:66 (80%)
10:64 (83%)
view
27 x 2 src/assessments/custom-widgets/test-steps
src/assessments/custom-widgets/test-steps
keyboard-interaction.tsx
role-state-property.tsx
61:89 (39%)
82:110 (30%)
view
27 x 2 pipeline/unified/channel
pipeline/unified/channel
sign-release-package-windows.yaml
sign-release-package-windows.yaml
37:63 (24%)
86:112 (24%)
view
26 x 2 src/assessments/custom-widgets/test-steps
src/assessments/native-widgets/test-steps
cues.tsx
cues.tsx
37:62 (28%)
47:72 (28%)
view
23 x 2 src/assessments/keyboard-interaction/test-steps
src/assessments/visible-focus-order/test-steps
keyboard-navigation.tsx
visible-focus.tsx
22:45 (28%)
19:42 (46%)
view
23 x 2 src/DetailsView/components/tab-stops
src/DetailsView/components
tab-stops-choice-group.scss
test-status-choice-group.scss
43:69 (31%)
47:73 (32%)
view
23 x 2 src/common/components/cards
src/common/components/cards
rich-resolution-content.tsx
rich-resolution-content.tsx
25:47 (7%)
181:203 (7%)
view
23 x 2 src/assessments/landmarks/test-steps
src/assessments/landmarks/test-steps
no-repeating-content.tsx
primary-content.tsx
21:44 (40%)
21:44 (35%)
view
22 x 2 src/common/components/cards
src/reports
collapsible-component-cards.scss
automated-checks-report.scss
11:36 (42%)
73:98 (19%)
view
20 x 2 src/assessments/errors/test-steps
src/assessments/errors/test-steps
error-identification.tsx
error-suggestion.tsx
15:35 (60%)
15:35 (48%)
view
19 x 2 src/icons/brand/blue
src/icons/brand/white
brand-blue.tsx
brand-white.tsx
117:135 (12%)
117:135 (12%)
view
19 x 2 src/electron/views/devic...omponents/android-setup
src/electron/views/devic...omponents/android-setup
prompt-establishing-connection-failed...
prompt-grant-permissions-step.tsx
25:45 (46%)
25:45 (42%)
view
19 x 2 src/electron/views/devic...omponents/android-setup
src/electron/views/devic...omponents/android-setup
prompt-establishing-connection-failed...
prompt-install-failed-step.tsx
25:45 (46%)
25:45 (45%)
view
19 x 2 src/assessments/native-widgets/test-steps
src/assessments/native-widgets/test-steps
expected-input.tsx
instructions.tsx
45:67 (26%)
64:86 (21%)
view
19 x 2 src/electron/views/devic...omponents/android-setup
src/electron/views/devic...omponents/android-setup
prompt-grant-permissions-step.tsx
prompt-install-failed-step.tsx
25:45 (42%)
25:45 (45%)
view
17 x 2 src/assessments/keyboard-interaction/test-steps
src/assessments/visible-focus-order/test-steps
keyboard-navigation.tsx
focus-order.tsx
29:45 (21%)
25:41 (29%)
view
17 x 2 src/electron/views/devic...omponents/android-setup
src/electron/views/devic...omponents/android-setup
prompt-establishing-connection-failed...
prompt-install-service-step.tsx
27:45 (41%)
20:38 (60%)
view
17 x 2 src/assessments/visible-focus-order/test-steps
src/assessments/visible-focus-order/test-steps
focus-order.tsx
visible-focus.tsx
25:41 (29%)
26:42 (34%)
view
17 x 2 src/electron/views/devic...omponents/android-setup
src/electron/views/devic...omponents/android-setup
prompt-install-failed-step.tsx
prompt-install-service-step.tsx
27:45 (40%)
20:38 (60%)
view
Duplicated Units
The list of top 3 duplicated units.
See data for all 3 unit duplicates...
Size#FoldersFilesLinesCode
9 x 2 src/common
src/common
telemetry-data-factory.ts
telemetry-data-factory.ts
133:142 
144:153 
view
8 x 2 src/DetailsView/components
src/DetailsView/components
failure-instance-panel-control.tsx
failure-instance-panel-details.tsx
262:270 
89:97 
view
6 x 2 src/DetailsView/components
src/DetailsView/components
failure-instance-panel-control.tsx
failure-instance-panel-details.tsx
254:260 
81:87 
view