Apple's Safari browser uses smooth scrolling as a feature to make web browsing more seamless and visually pleasing. It was introduced on the Mac with Safari 16.4. Primarily, this feature impacts how you navigate large web pages, mainly when using arrow keys. With smooth scrolling activated, the scroll continues uninterruptedly until a key is released or the mouse button is pressed to halt the scrolling. This feature is activated automatically when pressing the up or down arrow key. Smooth scrolling aims to provide users with a better browsing experience by mitigating the 'jittery' effect sometimes experienced during manual scrolling. The intention is to create an experience where the webpage seemingly floats with your scrolling, enabling a gentler and more continuous navigation experience.
Table of Contents
Smooth scrolling on Mac creates an inertia-like experience, mirroring the natural world where movement doesn't stop abruptly but gradually. If you've used an iPhone, you've possibly seen a version of it called rubber band scrolling, where content continues to scroll even after your finger has stopped moving, gradually coming to a stop. This effect also made its way to macOS to support Mac computers with a multi-touch trackpad or Magic Mouse. The gesture stops working, however, when you navigate multiple pages through smooth scrolling.
Issues with Smooth Scrolling
Despite its intended benefits, not all users appreciate the smooth scrolling feature. Some users, for example, have reported issues of eye strain and disturbed focus attributed to the continuous scrolling, finding it challenging to keep up with the moving webpage. The feature may also interfere with other functions, contributing to confusion or frustration while navigating. Safari, unfortunately, does not offer a native option to disable this feature. This means that users are essentially stuck with the action of smooth scrolling unless they can execute the correct steps to disable it. While it would simplify processes if Apple included a checkbox option within the Safari settings to enable or disable this feature, in its absence, users must follow specific procedures to achieve the same outcome.
Disabling Smooth Scrolling via Terminal
Safari's smooth scrolling feature can be disabled using a process that involves the Terminal and Safari's hidden Debug menu. While it may seem overwhelming initially, the steps are straightforward and can be followed quickly. It's worth noting, however, that for this process to work, you need full disk access for the Terminal.
Disabling smooth scrolling requires unhiding Safari's hidden debug menu first, which is only achievable through the Terminal. With full disk access granted to the Terminal, users can run the necessary commands to reveal this Debug menu. From here, they can access various hidden Safari browser settings, including the controls for smooth scrolling.
Steps to Get Full Disk Access and Open Debug Menu
Disabling smooth scrolling involves several steps, including getting full disk access for the Terminal and unveiling Safari's hidden Debug menu. Here are the detailed steps.
- Go through your System settings. Click on Apple Logo on the top-left of your screen and select System Preferences from the drop-down menu. Once in the System Preferences dialogue box, navigate to the Security & Privacy settings. Once there, scroll down and click on Full Disk Access.
- Enable Terminal under Full Disk Access. Within the Full Disk Access tab, you will see a series of options with toggle buttons next to them. Locate the Terminal here and enable the toggle. You might be asked to provide your admin username and password, depending on your security settings. Once done, the Terminal should have full disk access, the first step for disabling smooth scrolling on Safari.
- Open the Terminal application in Applications > Utilities. Copy and paste the following command into the Terminal, ensuring that there are no typographical errors or extraneous white space:
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
After entering the command, press return. This command will unhide and open the Debug menu in Safari.
Congratulations! With these steps completed, you've enabled full disk access for Terminal and opened the Debug menu in Safari. Now you're ready to disable smooth scrolling in the following steps.
Turning off Smooth Scrolling Using the Debug menu and Hiding the Debug Menu
Once the Debug menu is revealed and Safari's hidden settings are accessible, you can disable the smooth scrolling feature. Later, if preferred, you can also hide the Debug menu again.
- Quit Terminal and Open Safari. Once you have completed the previous steps, you can quit Terminal and open Safari. The Debug menu, previously hidden, is now visible due to the command you entered into Terminal.
- Navigate to Debug>Webkit Internal Features> EventHandlerdriven smooth keyboard scrolling. With Safari open, go to the Debug menu on the menu bar. Navigate through the menu following this pathway: Debug > Webkit Internal Features > EventHandlerdriven smooth keyboard scrolling. This specific setting controls the smooth scrolling function. It should be displayed with a checkmark indicating that it's currently enabled. You can remove the checkmark and disable the function by selecting it.
- Disable Safari Debug Menu Using Specific Terminal Command. By default, the Debug menu will remain visible in Safari even after you've disabled smooth scrolling. However, if you want to hide it again, you can return to the Terminal. Enter the following command:
defaults write com.apple.Safari IncludeInternalDebugMenu -bool false
After hitting return, the Debug menu in Safari will be hidden again, cleaning up your menu bar.
Note on Hiding Debug Menu Not Affecting the Settings
It's important to note that hiding the Debug menu will not reverse any changes made using it. The settings you've adjusted – in this case, disabling smooth scrolling – will remain as you've set them, even with the Debug menu hidden. This allows you to maintain a clean browser interface while benefitting from the adjustments you've made to enhance your browsing experience.