close icon
daily.dev platform

Discover more from daily.dev

Personalized news feed, dev communities and search, much better than whatโ€™s out there. Maybe ;)

Start reading - Free forever
Start reading - Free forever
Continue reading >

Safari Browser Tips for Developers

Safari Browser Tips for Developers
Author
Nimrod Kramer
Related tags on daily.dev
toc
Table of contents
arrow-down

๐ŸŽฏ

Tips and techniques for developers using Safari browser, including enabling developer tools, inspecting and modifying code, debugging, performance optimization, responsive design, and more.

If you're developing for Apple devices, mastering Safari's developer tools is essential. Here's a quick guide to get you started:

  • Enable Developer Tools in Safari by accessing Preferences > Advanced and checking 'Show Develop menu in menu bar'.
  • Web Inspector helps you inspect and modify HTML, CSS, and JavaScript in real-time.
  • Responsive Design Mode allows you to test your site on various device sizes.
  • Debugging Tools like the Console and Network panels aid in identifying and solving coding issues.
  • Performance Optimization techniques help you speed up your website.
  • Accessibility and Security features ensure your site is usable and safe for all users.
  • Safari-specific tips include detecting the browser, optimizing media encoding, and implementing responsive design.
  • Advanced Debugging Techniques offer deeper insights into your code's behavior.

This guide aims to improve your efficiency and effectiveness when developing web applications or sites for Safari, ensuring a smooth and optimized user experience across all Apple devices.

Safari's developer tools interface provides comprehensive inspection and debugging capabilities through several key panels:

Elements Panel

The Elements panel allows you to inspect and modify the DOM tree and CSS styles associated with the loaded webpage. You can:

  • View and edit HTML elements and attributes
  • Modify CSS styles directly in the panel
  • Visualize box models, positioning, and other layout details
  • Identify accessibility issues

The Elements panel is extremely useful for tweaking designs and layouts, fixing styling issues, and understanding DOM structure.

Network Panel

The Network panel logs all network requests made by the page and provides insights into loading performance. You can:

  • View all assets loaded by the page like scripts, stylesheets, images
  • Check request and response headers
  • Identify slow network requests impacting page load speed
  • See a breakdown of total download size and time

This is helpful to optimize page load times and identify network bottlenecks.

Sources Panel

This panel allows debugging and modification of JavaScript code. You can:

  • Pause code execution to step through your script
  • Set breakpoints and inspect variable values
  • Edit JavaScript code on the fly
  • Profile memory usage and CPU activity

The Sources panel is great for identifying and fixing JavaScript bugs and performance issues.

Timelines Panel

The Timelines panel visualizes various events tied to loading and running a webpage over time, including:

  • Resource loading
  • Style calculations
  • Layout changes
  • Script activity
  • Rendering frames

Analyzing these timelines is crucial to pinpoint expensive operations that may cause jank or lag when interacting with your site.

Console Panel

The Console panel logs output from JavaScript code running on the page, any runtime errors, logging statements, network request statuses, and more. This can help identify and debug a wide variety of front-end issues.

Storage Panel

This panel allows inspection and modification of all browser storage mechanisms utilized by the page like cookies, local storage, session storage, and more. It is invaluable for understanding and debugging client-side data persistence.

Overall, Safari's developer tools provide unparalleled inspection and debugging capabilities for webpages. Mastering these tools is essential for any web developer looking to build high-quality experiences.

Inspecting and Modifying HTML and CSS

Selecting Elements

To pick an element to work on in the Elements panel:

  • Just click on the part of the webpage you're interested in. This makes it pop up in the Elements panel.
  • Or, click on the element's name in the DOM tree in the Elements panel.

Other ways to find elements include:

  • Use the search box to look for elements by their ID, class name, or tag name.
  • Right-click on an element and choose "Select Element in Console" to use it in Console commands.

When you choose an element, you'll see all its details like HTML, CSS, and layout info on the right side.

Editing HTML

To change the HTML of something you've selected:

  • Double-click on its tag or text in the Elements panel.
  • Or right-click and pick "Edit as HTML".

Now, you can edit the HTML. Press Enter when you're done to save your changes.

Some quick tips:

  • Switch tag names to change the structure.
  • Change attributes like id or class.
  • Add, tweak, or remove child elements.

Your webpage will update right away with your changes.

Modifying CSS Styles

To change the CSS styles of something:

  1. Click on the element in the Elements panel or on the webpage.
  2. On the right, in the Styles section, find the style you want to change.
  3. Click in the value box, make your edit, and press Enter.

You can also:

  • Hit the New Style Rule button (+) to add new styles.
  • Toggle style properties on or off by checking/unchecking them.
  • Right-click on a style to make it !important or to copy it.

Like before, your webpage shows the changes right away.

Adding and Removing Classes

You can change how an element looks and acts by adding or removing classes.

To add a class:

  1. Choose the element in the Elements panel.
  2. Look for the class attribute in the Attributes section.
  3. Type in the new class name. Use spaces to add more than one.

To get rid of a class, just delete its name from the class attribute.

This is a quick way to change an element's style without messing with CSS rules directly.

Utilizing the Web Inspector for Debugging

The Web Inspector is a super handy tool for checking out how your page looks, fixing JavaScript problems, and figuring out what slows things down. Here's how to make the most of it:

Inspecting Page Layouts

  • The Elements panel lets you peek at the structure of your webpage and see how elements are laid out.
  • You can turn CSS styles on and off to immediately see how they affect your page.
  • Experiment with layout by changing styles like width, height, margin, and so on.
  • The Layout pane helps you spot issues with how things are arranged on your page.

Debugging JavaScript

  • Use the Sources panel to pause your code where you want and go through it step by step.
  • Check out variables, events, and what the code is doing at each step on the side.
  • Change code on the fly, run small tests, and look at values in the Console.
  • Find out where your code is slow or using too much memory.

Analyzing Network Performance

  • The Network panel shows you everything your page is loading.
  • Find out which parts take the longest to load.
  • Look at the details of what's being sent and received.
  • Pretend you're on a slower connection to see how your page does.

Diagnosing Rendering Issues

  • Use the Timelines panel to see everything that happens when your page loads and runs.
  • Look for parts of your page that make it slow or choppy.
  • Record what happens when people use your page to find spots you can make better.

Getting good at using Safari's Web Inspector means you can make your websites work better and faster. It's all about spotting problems and fixing them.

Responsive Design Mode

Responsive Design Mode is a feature in Safari that lets you see how your website looks on different devices like phones, tablets, and computers. It's great for making sure your site works well no matter what screen size someone is using. Here's a simple guide to using it:

Enabling Responsive Design Mode

To start using Responsive Design Mode in Safari:

  1. Go to the Develop menu at the top.
  2. Choose Responsive Design Mode from the list.

A toolbar will show up with different screen sizes you can test.

Selecting Screen Sizes

In Responsive Design Mode, you can pick from preset screen sizes for devices like:

  • iPhone
  • iPad
  • Desktop
  • Or even specific sizes like 1440px wide

Just click on one to see how your site looks. You can also manually adjust the size by dragging the corner of the window, switch to landscape mode, or simulate using a touchscreen.

Testing Responsiveness

As you change the size of the Safari window:

  • Move around your site to see if it adjusts smoothly.
  • Check that things like text and images move or resize correctly.
  • Make sure links and buttons work as expected.

This helps you spot any parts of your site that might not look right on different screens, like if text gets too squished or a picture disappears.

Integration with Web Inspector

You can use Responsive Design Mode together with Safari's Web Inspector. This means you can:

  • Look closely at the code of your site and change it on the fly.
  • Solve problems with your site's JavaScript.
  • Check how fast your site loads and find ways to make it faster.

Using these tools together can help you make sure your site not only looks good on all devices but also works well and loads quickly.

By getting good at using Responsive Design Mode, you can make websites that everyone can enjoy, no matter what device they're using. It's a good idea to test your site often as you build it to catch any issues early.

Advanced Debugging Techniques

Debugging web apps can sometimes feel like a puzzle, but Safari's got some cool tools to help you out. Here are some tips to step up your debugging game with the Web Inspector:

Using the Debugger Statement

You can make your JavaScript take a break by adding debugger; in your code. When Safari sees this, it'll pause right there, letting you take a closer look.

How to do it:

  1. Jump into the Sources panel
  2. Drop debugger; into the line where you want things to pause
  3. Refresh the page
  4. Your code will stop at that line, ready for you to dive in

This is super handy for checking out what's happening at certain moments.

Viewing Console Logs

The Console panel is where you'll see messages from console.log(), along with any errors or warnings.

Some tips:

  • Use console.log() to spit out what values variables are holding or to track where you are in your code.
  • You can sift through messages by type, like error or warn, to zero in on problems.
  • Logging objects? You can peek inside them with console.log(someObject);

Filtering Network Traffic

In the Network panel, you can narrow down requests by:

  • Type (like XHR, JS, CSS)
  • Where they're from (domain)
  • File name
  • How big they are
  • How long they take

This is great for digging into specific stuff, like if you're only interested in checking out API calls.

Analyzing Detailed Timelines

The Timelines panel lays out everything that happens as your page loads and runs, all on a neat timeline.

What you can do:

  • Zoom in to get a closer look at certain actions
  • Filter by types of events
  • Look up specific elements or actions
  • Check out the details of what's causing delays

This helps you find and fix spots that slow your app down.

Summary

  • Pause your code with debugger; to take a closer look at specific spots
  • Use console.log() to keep tabs on what your code is doing
  • Filter network stuff to focus on what matters to you
  • Use the timelines to spot and smooth out any slow parts

Getting the hang of these tricks will help you make smoother, faster web apps.

Safari-specific Development Tips

Detecting Safari Browser

You can find out if someone is using Safari and what version it is with this bit of code:

let isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
let safariVersion = parseInt(navigator.userAgent.match(/version\/(\d+)/i)[1]);

Then, you can make your website work differently depending on the Safari version:

if (isSafari) {
  if (safariVersion < 13) {
    // use simpler features for older Safari versions
  } else {
    // use the newest features
  }
}

This way, your website can work well for everyone, no matter what version of Safari they're using.

Supporting Multiple WebKit Versions

Since Safari uses the WebKit engine, you can check if certain WebKit features are available:

if ('WebKitCSSMatrix' in window) {
  // code for WebKit
}

if (document.body.style.webkitFilter !== undefined) {
  // use -webkit-filter
}

And use -webkit- in your CSS for things to look right in both old and new versions of WebKit:

.box {
  -webkit-filter: blur(5px);
     -moz-filter: blur(5px);
       -o-filter: blur(5px);
          filter: blur(5px);
}

Checking the WebKit Feature Status helps you know what's supported.

Optimizing Media Encoding

For videos, use MP4 format with H.264 encoding. For audio, MP3 works well across browsers. Use <video> and <audio> tags for media on your website. For drawings or animations, <canvas> works great in Safari. Using these formats makes sure your website loads fast and looks good in Safari.

Implementing Responsive Design

Use flexible layouts, images that resize, and media queries for a website that looks good on any device:

img, embed, object, video {
  max-width: 100%;
}

@media (max-width: 600px) {
  /* styles for small screens */
}

Always check how your site looks on different devices like iPhones, iPads, and desktops to make sure everything adjusts and fits well.

Adding Multi-Touch Support

Make your website interactive for touch devices by listening to touch events:

element.addEventListener('touchstart', handleTouch);
element.addEventListener('touchend', handleTouch);  

function handleTouch(e) {
  // do something cool
}

You can detect different gestures like taps, swipes, or pinches and use them to make things move or change on your site. This makes your website more fun and easier to use on phones and tablets.

sbb-itb-bfaad5b

Simulating Devices and Screen Sizes

Safari lets you check how your website looks on different devices and screen sizes right from your computer. This is super helpful for making sure your site looks good whether someone is viewing it on a phone, tablet, or computer.

Enabling Responsive Design Mode

To get started:

  1. Click on Develop > Responsive Design Mode in the Safari menu.
  2. You'll see a toolbar with different device and screen size options.

Selecting Emulation Options

In Responsive Design Mode, you can:

  • Pick from devices like iPhone, iPad, Apple Watch
  • Choose screen sizes like 1440x900 or 1280x720
  • Try out portrait/landscape views
  • Test how touch input works

Just click on a device or screen size to see how your page changes.

Customizing Sizing

You can also manually adjust the size of the page by dragging the window's edges, or you can type in specific sizes:

Width: 375px
Height: 667px

And you can switch between landscape and portrait modes:

Orientation: Landscape

Testing Responsiveness

As you change sizes, make sure that:

  • Your page adjusts smoothly for different screen sizes
  • Pictures and videos fit well and don't stick out
  • Text is easy to read and everything is easy to use

Scrolling around helps you check that everything moves right.

Integration with Developer Tools

You can use Responsive Design Mode with other tools in Safari like the Web Inspector. This lets you do a lot at once, like:

  • Look at and change your site's code
  • Figure out JavaScript issues
  • Check how fast your site is
  • Find and fix display problems

This makes it easier to get your site looking and working great on all devices.

Achieving Consistency

Test your site on different screens as you build it to make sure it always works and looks right.

Summary

  • Start emulation with Develop > Responsive Design
  • Use the preset options for devices and screen sizes
  • Adjust the page size yourself if needed
  • Test your site with other Safari tools for a complete check-up
  • Keep testing on different screens to make sure your site stays responsive

Following these steps will help make sure your site offers a good experience for everyone, no matter what device they're using.

Debugging Safari Web Apps on macOS

When you're working on a web app for Safari on a Mac, you'll need to know how to find and fix problems. Here's a simple guide to get you started with Safari's built-in tools for developers.

Enabling Web Inspector

First things first, you need to turn on a tool called Web Inspector:

  • Go to Safari's preferences and click on the Advanced tab
  • Make sure the box next to "Show Develop menu in menu bar" is checked
  • You'll see a new "Develop" menu appear at the top of Safari
  • From there, select "Show Web Inspector"

You can also press Option + Command + I on your keyboard to open it up quickly.

Inspecting the Web App

With Web Inspector open, you can:

  • Use the Elements panel to look at the website's building blocks (HTML) and how it's styled (CSS). This is great for checking the layout, seeing what styles are applied, and making sure it's accessible.

  • The Console panel shows you errors or any messages from your JavaScript. This helps you spot problems fast.

  • The Sources panel lets you dive into your JavaScript code. You can pause it, see what's happening step by step, and check out the values of different things while it runs.

  • The Network panel keeps track of all the files your app is loading. It's useful for finding out if anything is taking too long to load.

  • Check out the Timelines and Profiles panels to see if there are any slow parts in your app causing delays or making things choppy.

Testing on Different Devices

You can see how your app looks on different devices using a feature called Responsive Design Mode. Just go to the Develop menu and turn it on. This lets you check if your app looks good on phones, tablets, and computers without having to test it on each device.

Modifying Code

With Web Inspector, you can change your app's HTML, CSS, and JavaScript right there and then. This means you can try out new ideas quickly:

  • Change the text or structure in the Elements panel
  • Adjust how things look by tweaking the CSS
  • Update your JavaScript in the Sources panel

Just refresh your app to see how the changes work out.

Achieving Performance

Use Web Inspector to look at how your app loads and runs. You can find out what's slowing it down and fix it by:

  • Looking at network requests to see if files are too big or slow to load
  • Checking JavaScript performance to find and fix slow code
  • Watching for layout changes that might be causing delays

Testing your app in different situations helps make sure it runs smoothly for everyone.

Performance Optimization

Detecting Unused Code

To spot CSS and JavaScript your web app doesn't really use, follow these steps in your browser's developer tools:

  1. Open the developer tools and find the Coverage panel.
  2. Refresh your page with the coverage tool running - this keeps track of which bits of code are active.
  3. Use your site to make sure you're checking all its features.
  4. Look at the Coverage panel to see how much of your code was actually needed.
  5. Click on files to see parts of the code that weren't used, shown in red.
  6. Get rid of code that you don't need to make your files smaller.

Some hints:

  • Hit Start instrumenting coverage to begin.
  • Try out every part of your site to catch all the code that might run.
  • Pay special attention to big CSS or JavaScript files that aren't used much.

Cutting out unnecessary code helps your site run faster and smoother.

Analyzing Resource Sizes

To look into how big your site's files are using the Network panel:

  1. Open the developer tools and switch to the Network tab.
  2. Refresh the site to see all the files it loads.
  3. Look at the Size column for how big each file is.
  4. Organize by size to spot the biggest files.
  5. Click on a file for more details, like how much you could save by compressing it.
  6. Files larger than 2MB can slow down your site.

Ways to make files smaller:

  • Shrink and tidy up JavaScript and CSS files.
  • Use tools to make images smaller without losing quality.
  • Only load big files when they're actually needed.

Making your files leaner can make your site load faster and work better.

Accessibility and Security

Making sure websites are easy to use and safe is really important, especially for people using iPhones and iPads. Here are some tips for making websites better for everyone in Safari:

Implementing Proper Accessibility

  • Use special codes (ARIA roles, states, and properties) to help browsers understand what each part of your website is supposed to do.
  • Always provide descriptions for images and other non-text content.
  • Make sure there's a strong contrast between text and its background so it's easy to read.
  • Design your site so people can navigate through it using just a keyboard.
  • Make your site work well with tools that help people with disabilities, like screen readers.

Tips for testing:

  • Try using VoiceOver on iOS to check if people can listen to your website's content.
  • Use the Accessibility Inspector in Safari to make sure everything's set up right.

Utilizing Safari's Security Features

  • Use HTTPS to keep connections to your site secure.
  • Make sure any external content on your site hasn't been messed with.
  • Think about using Feature Policy for tighter control over your site's features.
  • Use Credential Management API to help users log in securely.

Additional measures:

  • Always clean and check any information users give you.
  • Stick to the best ways of keeping user accounts safe.
  • Be careful with scripts from other websites.

Checking for Common Issues

  • Make sure your site meets the guidelines for accessibility.
  • Look out for common security risks like XSS or CSRF.
  • Test your site on both desktop and mobile versions of Safari.
  • Check that your site still works when Safari's extra security settings are turned on.

Focusing on making your site easy to use and safe helps everyone have a better experience. Testing thoroughly is the best way to find and fix any problems.

Conclusion

Safari gives developers a lot of tools to make websites and apps work really well on Apple devices. If you know how to use these tools, you can make your site or app faster, look better, and be easier for everyone to use.

Here's a quick recap of what we talked about:

  • Develop menu in Safari lets you use cool tools like Web Inspector for checking and fixing code, and Responsive Design Mode for seeing how your site looks on different devices.
  • The Elements panel helps you look at and change the website's HTML and CSS, check how it's laid out, and make sure it's accessible to everyone.
  • The Network panel helps you see how fast your site loads and find ways to make it load faster.
  • Sources panel is for finding and fixing JavaScript bugs.
  • Timelines panel shows you what happens when your page loads and helps you find parts that make it slow.
  • Responsive Design Mode lets you see how your site looks on phones, tablets, and computers.
  • Make sure your site can be used easily by everyone, including people with disabilities, by using ARIA roles and testing with tools like VoiceOver.
  • Keep your site safe with HTTPS, clean inputs, and safe login methods.

We also shared tips on how to make sure your site works well in Safari, like checking for Safari browser, using WebKit features, making your site responsive, adding touch events, and making your site fast.

With Safari being so popular on mobile devices, it's really important to test your site on Apple's devices to make sure it works great. Use the tools we talked about to check your site and keep updating it with new features.

In short, making your site work well in Safari means happy users who'll want to keep coming back.

How do I use developer in Safari?

To turn on developer tools in Safari, follow these steps:

  • Open Safari, then go to Preferences
  • Click on the Advanced tab
  • Make sure to tick the box for Show Develop menu in menu bar
  • Now, you'll see a new Develop menu at the top, which lets you access various developer tools

These tools include the Web Inspector for checking your website's code and layout, Responsive Design Mode for seeing how your site looks on different devices, and a console for solving JavaScript problems.

Is Safari good for Webdev?

Yes, Safari is great for web development. It has handy tools like Web Inspector, Responsive Design Mode, and Accessibility Inspector that make building, testing, and improving websites easier.

Since Safari uses WebKit, like some other browsers, testing for cross-browser compatibility is more straightforward. Plus, its popularity among Apple device users means it's crucial for reaching a broad audience. Safari offers a solid development environment for web professionals.

How do I use Safari efficiently?

Here are a few tips to get the most out of Safari:

  • Look at all your open tabs with tab previews and close ones you don't need by swiping.
  • Turn on Reader Mode for a cleaner reading experience on web pages.
  • Bookmark your go-to sites and use the smart search feature for quick access.
  • Use Keychain for saving and autofilling passwords securely.
  • When privacy is a concern, switch to Private Browsing mode.
  • Add useful shortcuts to your toolbar for quick access.

How do I make Safari work better?

To improve Safari's performance:

  • Clean out your browsing history and site data now and then.
  • Switch on the Develop menu for access to more tools that can help optimize your browsing.
  • Stop videos from playing automatically to save on resources.
  • Use Reader Mode on complex pages to cut down on data use.
  • Make sure privacy settings are on.
  • If content blockers are messing with a site, try turning them off temporarily.
  • Keep Safari and your operating system up to date for the latest speed and security enhancements.

Related posts

Why not level up your reading with

Stay up-to-date with the latest developer news every time you open a new tab.

Read more