To understand the location of grips with text you need to understand text and how it is generated. This will explain why the characters sometimes go beyond what you are expecting.
Roman Charaters, Chinese characters, greek, Arabic etc all have different set outs. Roman Charaters are based on 4 lines to allow for uppercase, lowercase, hanging and extended characters.

Hanging characters for example are g,j,p,q,y, as they 'extend' below the 'line' characters which extend above the line are b,d,f,h,i,j,k,l,t, and natural characters are a,c,e,m,n,o,r,s,u,v,w,x,z.
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ,{}[];|
Even with upper chase you get hanging as in the 'Q'.
There are thin characters i,l, or wide characters such as m.
The spacing is also tricky, based on character width.
So to explain where the grip is, take a bounding box around the extents of the largest character, include annotation and special characters for the font you has selected such as ',";% as they also extend above and below the three set out lines, and some are wider than the largest alpha characters....
and there you have it, the grip point!