By cheating with a Python script to move the mouse, I managed to get 99.9%. Seems difficult to get higher than that, perhaps due to the mouse position having integer coordinates.
If you draw the diagonal sides as the diagonals of squares, they will have the square root of two times the length of the vertical or horizontal sides.
Fair enough. But you can get pretty close if you draw a 10x10 with 4 squares on the sides parallel to the graph. Or 5x5 with 3 on each side. The former is 6% over and the latter 6% under. And if you go juust a hair outside of the lines you're dead on. Such as a pencil tip's width off of the ruler.
I just worked that out with a calculator, but I'm fairly sure I worked that out empirically while bored in math class one year. My very wise teacher put me and the other bored kid way to the opposite side of the classroom from where his chalkboard was and looked the other way when we played 'squares' in class, safely out of the peripheral vision of any of the other kids. Probably the only time I ever dared 'pass notes' in class.
You can get pretty close with a pencil and a ruler though, if you have the right diameter of mechanical pencil. If you place the ruler dead on the corners of the squares and draw the line offset that tiny little bit, the error is barely perceptible without magnification.
I used the pyautogui library on Linux. Then just a simple loop with an incrementing angle, with some overshoot in the end in order for the webpage to recognize that the circle was complete. First time using the library, worked pretty well, except I had to figure out that I had to use pyautogui.PAUSE = 0 to make it not pause between mouse movements.