Danny Mösch
c1ffdfe891
Enable prefer_condition_list rule ( #6163 )
2025-07-12 09:41:00 -04:00
Danny Mösch
599e51a5a2
Format code ( #6151 )
2025-07-02 17:50:53 -04:00
JP Simard
45c4766a02
Migrate AccessibilityLabelForImageRule from SourceKit to SwiftSyntax ( #6101 )
...
* Migrate AccessibilityLabelForImageRule from SourceKit to SwiftSyntax
\## Summary
Fix `.accessibilityElement(children:)` exemption logic where the
previous implementation incorrectly exempted images with `.combine`
when only `.ignore` should exempt children.
\## Improvements Based on OSSCheck Results
\### New Violations (Legitimately Detected)
- `Image(uiImage:)` and `Image(nsImage:)` calls providing contextual
content
- Previously missed by SourceKit's pattern matching limitations
- These represent real accessibility issues requiring labels
\### Fixed Violations (False Positives Removed)
- Images inside Button/NavigationLink labels (containers handle
accessibility)
- Images in custom components with proper accessibility context
- System icons incorrectly flagged when already accessible
\## Key Technical Improvements
- **Comprehensive detection** of all Image initializer types
- **Better context awareness** through syntax tree traversal
- **Accurate `.accessibilityElement(children:)` behavior**
(`.ignore` exempts, `.combine`/`.contain` do not)
- **Reduced false positives** while catching real accessibility issues
\## Regression Test Examples
Added comprehensive examples demonstrating the migration benefits:
\### Non-Triggering (Reduced False Positives)
- Images in `Button`/`NavigationLink` labels with accessibility context
- Images in containers with `.accessibilityElement(children: .ignore)`
- Complex hierarchies where container accessibility handles children
- Various Image initializer types in proper accessible contexts
\### Triggering (Improved Detection)
- `Image(uiImage:)` and `Image(nsImage:)` providing contextual content
- Images in containers with `.combine`/`.contain` that don't exempt
- Status icons, favicons, and background images needing labels
* Update changelog
2025-06-21 11:34:06 -04:00
Martin Redington
5517d233fd
Started to add rationales ( #5681 )
2025-03-06 10:16:30 +00:00
Danny Mösch
88191fe58e
Enable prefer_key_path rule and fix all violations ( #5721 )
2024-08-03 14:21:47 +02:00
Martin Redington
3421f5f46d
Enable multiline_parameters rule, and fix all cases ( #5664 )
2024-07-18 01:48:02 +01:00
Martin Redington
ed10aec5f8
Enable implicit_return and fix all violations ( #5658 )
2024-07-10 12:15:19 +01:00
Danny Mösch
c810459e6a
Enforce mandatory trailing comma and fix all violations ( #5640 )
2024-06-28 05:36:50 +00:00
Danny Mösch
2ed1fc2f27
Let all rules be configurable ( #5274 )
2023-10-12 17:30:45 +02:00
Martin Redington
f8225073cd
Remove Image(systemName:) special case ( #5175 )
2023-08-30 18:08:40 +02:00
Danny Mösch
3f039f26d5
Connect configs with their referencing rules to have some context in error logging ( #5017 )
...
With the binding of configurations to their associated rule types
"unknown configuration" errors can be made more specific mentioning
also the rule's identifier in the printed message.
2023-05-19 20:58:24 +02:00
JP Simard
a7bc9e20c7
Move built-in rules to new SwiftLintBuiltInRules module ( #4950 )
2023-04-27 11:16:01 -04:00